'size': LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Size, \r
'tail_angle': LocalManifest.FormModule.UseModule.FieldModule.HelperModule.TailAngle, \r
'color': LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Color, \r
- 'popup': LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Popup\r
+ 'popup': LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Popup,\r
+ 'slider': LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Slider,\r
}\r
\r
@default_type: () ->\r
--- /dev/null
+class LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Slider extends LocalManifest.FormModule.UseModule.FieldModule.HelperModule.Base\r
+ \r
+ set_default: () ->\r
+ super()\r
+ \r
+ init: () ->\r
+ super()\r
+ \r
a[@field_manifest.column_name()] = v\r
@item().set(a, opt)\r
\r
+ unset: (opt = null) ->\r
+ a = {}\r
+ a[@field_manifest.column_name()] = undefined\r
+ @item().set(a, {unset: true})\r
+ \r
options: (tag_options = {}) ->\r
tag_options\r
\r
a[@field_manifest.column_name()] = v\r
@item().set(a, opt)\r
\r
+ unset: () ->\r
+ a = {}\r
+ a[@field_manifest.column_name()] = undefined\r
+ @item().set(a, {unset: true})\r
+ \r
form_field_name: () ->\r
@form.form_field_name @field_name\r
\r
size: Locmare.FormModule.FieldModule.HelperModule.Size, \r
tail_angle: Locmare.FormModule.FieldModule.HelperModule.TailAngle, \r
color: Locmare.FormModule.FieldModule.HelperModule.Color, \r
- popup: Locmare.FormModule.FieldModule.HelperModule.Popup\r
+ popup: Locmare.FormModule.FieldModule.HelperModule.Popup,\r
+ slider: Locmare.FormModule.FieldModule.HelperModule.Slider,\r
}\r
\r
@factory: (field, my_manifest) ->\r
--- /dev/null
+class Locmare.FormModule.FieldModule.HelperModule.Slider extends Locmare.FormModule.FieldModule.HelperModule.Base\r
+ tagName: 'span'\r
+ className: 'slider'\r
+ \r
+ # wrapper\r
+ initialize: (options) ->\r
+ super(options)\r
+ @check = new Tag.Checkbox({value: 1, checked: @is_enable()})\r
+ @slider = new Locmare.FormModule.FieldModule.HelperModule.SliderModule.Slider({\r
+ field: @field\r
+ })\r
+ @listenTo(@check, 'click', @click_check)\r
+ @listenTo(@slider, 'slide', @slider_change)\r
+ \r
+ render: () ->\r
+ @attr = {\r
+ }\r
+ this.$el.attr(@attr)\r
+ this.$el.html('')\r
+ this.$el.append(@check.render().el)\r
+ this.$el.append(@slider.render().el)\r
+ @click_check() # init show/hide\r
+ this\r
+ \r
+ refresh: () ->\r
+ null\r
+ \r
+ is_enable: () ->\r
+ _.isNumber(@field.value())\r
+ \r
+ slider_change: (value) -> \r
+ @field.tag.$el.val(value)\r
+ @field.trigger('change')\r
+ \r
+ click_check: () -> \r
+ if @check.checked\r
+ @slider.enable()\r
+ else\r
+ @slider.disable()\r
+ \r
+class Locmare.FormModule.FieldModule.HelperModule.SliderModule\r
+class Locmare.FormModule.FieldModule.HelperModule.SliderModule.Slider extends Tag.Div\r
+ events: {\r
+ slidechange: 'slider_change'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ @field = options.field\r
+ super({})\r
+ this.$el.addClass('per-slider')\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.slider {\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 100,\r
+ value: 0\r
+ }\r
+ this\r
+ \r
+ enable: () ->\r
+ @field.set(@field.value() || 0)\r
+ this.$el.slider({value: @field.value()})\r
+ this.$el.attr({style: 'display: inline;'})\r
+ \r
+ disable: () ->\r
+ this.$el.attr({style: 'display: none;'})\r
+ @field.set(undefined)\r
+ @field.tag.render() # why does not raise change event when set null value?\r
+ \r
+ slider_change: (event, ui) -> \r
+ @trigger('slide', ui.value)\r
+ \r
+ volume: () ->\r
+ (@field.value() >> @shift) & 0xFF\r
+ \r
class Tag.H2 extends Tag.H3\r
tagName: 'h2'\r
\r
+class Tag.Input extends Backbone.View\r
+ tagName: 'input'\r
+ \r
+ initialize: (options) ->\r
+ @type = options.type || 'text'\r
+ @class_name = options.class_name\r
+ @attr = {}\r
+ \r
+ render: () ->\r
+ this.$el.attr(@attr)\r
+ @el.className = @class_name if @class_name\r
+ this.$el.html('')\r
+ this\r
+ \r
+class Tag.Checkbox extends Tag.Input\r
+ events: {\r
+ click: 'click'\r
+ }\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ @type = 'checkbox'\r
+ @value = options.value\r
+ @checked = options.checked\r
+ @attr = {\r
+ type: @type,\r
+ value: @value,\r
+ checked: @checked,\r
+ }\r
+ \r
+ refresh: () ->\r
+ @attr['checked'] = @checked\r
+ this.$el.attr(@attr)\r
+ \r
+ click: () ->\r
+ @checked = this.$el.prop('checked')\r
+ @refresh()\r
+ @trigger('click')\r
+ return true\r
+ \r
@Tag = Tag\r
tag: {\r
type: 'number',\r
},\r
+ helpers: {\r
+ slider: {\r
+ type: 'slider',\r
+ args: {\r
+ class_name: 'gp_x_slider',\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 100,\r
+ },\r
+ },\r
+ },\r
+ row_break: true,\r
},\r
y: {\r
tag: {\r
type: 'number',\r
},\r
+ helpers: {\r
+ slider: {\r
+ type: 'slider',\r
+ args: {\r
+ class_name: 'gp_y_slider',\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 100,\r
+ },\r
+ },\r
+ },\r
row_break: true,\r
},\r
z: {\r
tag: {\r
type: 'number',\r
},\r
+ helpers: {\r
+ slider: {\r
+ type: 'slider',\r
+ args: {\r
+ class_name: 'gc_xy_slider',\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 100,\r
+ },\r
+ },\r
+ },\r
+ row_break: true,\r
},\r
wh: {\r
tag: {\r
type: 'number',\r
},\r
+ helpers: {\r
+ slider: {\r
+ type: 'slider',\r
+ args: {\r
+ class_name: 'gc_wh_slider',\r
+ orientation: 'horizontal',\r
+ range: 'min',\r
+ max: 100,\r
+ },\r
+ },\r
+ },\r
row_break: true,\r
},\r
z: {\r
//= require ./local_manifest/form/use/field/helper/tail_angle
//= require ./local_manifest/form/use/field/helper/color
//= require ./local_manifest/form/use/field/helper/popup
+//= require ./local_manifest/form/use/field/helper/slider
//= require ./local_manifest/form/use/element_field
//= require ./local_manifest/form/use/part_field
//= require ./local_manifest/list_group
//= require ./locmare/form/field/helper/tail_angle
//= require ./locmare/form/field/helper/color
//= require ./locmare/form/field/helper/popup
+//= require ./locmare/form/field/helper/slider
//= require ./locmare/bucket
//= require ./locmare/list_group
//= require ./locmare/list_group/lib
width: 256px;
margin: 3px 10px;
}
+ .per-slider {
+ float: left;
+ clear: left;
+ width: 100px;
+ margin: 3px 10px;
+ }
#elements-tabs {
font-size: 12px;
"wrapper": "speech-fore_color-wrap"\r
}\r
}\r
- }\r
+ },\r
+ "row_break": true\r
},\r
"speech_balloon_template_module_name": {\r
"label": {\r
"x": {\r
"tag": {\r
"type": "number"\r
- }\r
+ },\r
+ "helpers": {\r
+ "slider": {\r
+ "type": "slider",\r
+ "args": {\r
+ "class_name": "gp_x_slider",\r
+ "orientation": "horizontal",\r
+ "range": "min",\r
+ "max": 100\r
+ }\r
+ }\r
+ },\r
+ "row_break": true\r
},\r
"y": {\r
"tag": {\r
"type": "number"\r
},\r
+ "helpers": {\r
+ "slider": {\r
+ "type": "slider",\r
+ "args": {\r
+ "class_name": "gp_y_slider",\r
+ "orientation": "horizontal",\r
+ "range": "min",\r
+ "max": 100\r
+ }\r
+ }\r
+ },\r
"row_break": true\r
},\r
"z": {\r
"xy": {\r
"tag": {\r
"type": "number"\r
- }\r
+ },\r
+ "helpers": {\r
+ "slider": {\r
+ "type": "slider",\r
+ "args": {\r
+ "class_name": "gc_xy_slider",\r
+ "orientation": "horizontal",\r
+ "range": "min",\r
+ "max": 100\r
+ }\r
+ }\r
+ },\r
+ "row_break": true\r
},\r
"wh": {\r
"tag": {\r
"type": "number"\r
},\r
+ "helpers": {\r
+ "slider": {\r
+ "type": "slider",\r
+ "args": {\r
+ "class_name": "gc_wh_slider",\r
+ "orientation": "horizontal",\r
+ "range": "min",\r
+ "max": 100\r
+ }\r
+ }\r
+ },\r
"row_break": true\r
},\r
"z": {\r