'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.Span\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
+ @field.tag.show()\r
+ \r
+ disable: () ->\r
+ @field.set(undefined)\r
+ @field.tag.hide()\r
+ this.$el.attr({style: 'display: none;'})\r
+ \r
+ slider_change: (event, ui) -> \r
+ @trigger('slide', ui.value)\r
+ \r
+ volume: () ->\r
+ (@field.value() >> @shift) & 0xFF\r
+ \r
initialize: (options) ->\r
@field = options.field\r
@tag_manifest = options.tag_manifest\r
+ @visible = true\r
\r
form_field_name: () ->\r
@field.form_field_name()\r
else\r
this.$el.val()\r
\r
+ type: () ->\r
+ null\r
+ \r
value: () ->\r
@field.value()\r
\r
+ attr: () ->\r
+ r = {\r
+ name: @form_field_name(),\r
+ }\r
+ # _.extend(r, @options())\r
+ if @type()\r
+ r['type'] = @type()\r
+ if @visible\r
+ #r['style'] = 'display: inline;'\r
+ else\r
+ r['style'] = 'display: none;'\r
+ r\r
+ \r
+ show: () ->\r
+ @visible = true\r
+ @render()\r
+ \r
+ hide: () ->\r
+ @visible = false\r
+ @render()\r
+ \r
options: () ->\r
@tag_manifest.options\r
\r
\r
render: () ->\r
this.$el.html('')\r
- @attr = {\r
- type: 'file',\r
- name: @form_field_name()\r
- }\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@attr())\r
this\r
\r
change: (event) ->\r
\r
+ type: () ->\r
+ 'file'\r
+ \r
\r
render: () ->\r
this.$el.html('')\r
- @attr = {\r
- type: 'hidden',\r
- name: @form_field_name(),\r
- value: @value()\r
- }\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@attr())\r
this\r
\r
val: () ->\r
parseInt(super) # humm... \r
+ \r
+ attr: () ->\r
+ r = super()\r
+ r['value'] = @value()\r
+ r\r
+ \r
\r
render: () ->\r
this.$el.html('')\r
- sz = @options()['size']\r
- @attr = {\r
- type: 'number',\r
- name: @form_field_name(),\r
- value: @value(),\r
- \r
- }\r
- if sz\r
- @attr['style'] = Pettanr.to_style({width: Pettanr.to_s(sz) + 'em'})\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@attr())\r
this\r
\r
change: () ->\r
@field.helpers.refresh()\r
@field.trigger('change')\r
\r
+ type: () ->\r
+ 'number'\r
+ \r
val: () ->\r
parseInt(super)\r
\r
+ attr: () ->\r
+ r = super()\r
+ r['value'] = @value()\r
+ sz = @options()['size']\r
+ if sz\r
+ r['style'] = Pettanr.to_style({width: Pettanr.to_s(sz) + 'em'})\r
+ r\r
+ \r
else\r
members\r
this.$el.html('')\r
- @attr = {\r
- name: @form_field_name(),\r
- }\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@attr())\r
_.each values, (member) =>\r
selected = if @is_selected(member)\r
' selected'\r
\r
render: () ->\r
this.$el.html('')\r
- @attr = {\r
- type: 'text',\r
- name: @form_field_name()\r
- }\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@attr())\r
this.$el.val(@value())\r
this\r
\r
\r
render: () ->\r
this.$el.html('')\r
- @attr = {\r
- name: @form_field_name(),\r
- }\r
- if sz = @tag_manifest.options['size']\r
- r = sz.split('x')\r
- @tag_manifest.options['cols'] = r[0]\r
- @tag_manifest.options['rows'] = r[1]\r
- delete @tag_manifest.options['size']\r
- _.extend(@attr, @options())\r
- this.$el.attr(@attr)\r
+ this.$el.attr(@attr())\r
this.$el.val(@value())\r
this\r
\r
change: () ->\r
@field.trigger('change')\r
\r
+ attr: () ->\r
+ r = super()\r
+ if sz = @options()['size']\r
+ rc = sz.split('x')\r
+ r['cols'] = rc[0]\r
+ r['rows'] = rc[1]\r
+ r\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: right;
+ 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