OSDN Git Service

pull
authoryasushiito <yas@pen-chan.jp>
Sat, 16 May 2015 05:57:31 +0000 (14:57 +0900)
committeryasushiito <yas@pen-chan.jp>
Sat, 16 May 2015 05:57:31 +0000 (14:57 +0900)
18 files changed:
app/assets/javascripts/local_manifest/form/use/field/helper.js.coffee
app/assets/javascripts/local_manifest/form/use/field/helper/slider.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/form/extend_field.js.coffee
app/assets/javascripts/locmare/form/field.js.coffee
app/assets/javascripts/locmare/form/field/helper.js.coffee
app/assets/javascripts/locmare/form/field/helper/slider.js.coffee [new file with mode: 0644]
app/assets/javascripts/locmare/form/field/tag/base.js.coffee
app/assets/javascripts/locmare/form/field/tag/file.js.coffee
app/assets/javascripts/locmare/form/field/tag/hidden.js.coffee
app/assets/javascripts/locmare/form/field/tag/number.js.coffee
app/assets/javascripts/locmare/form/field/tag/select.js.coffee
app/assets/javascripts/locmare/form/field/tag/text.js.coffee
app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee
app/assets/javascripts/tags.js.coffee
app/assets/javascripts/work/forms.js.coffee.erb
app/assets/javascripts/yasapp.js
app/assets/stylesheets/test.css.scss
public/local_manifest.json

index 5b8bcf8..d28a024 100644 (file)
@@ -5,7 +5,8 @@ class LocalManifest.FormModule.UseModule.FieldModule.HelperFactory extends Manif
       '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
diff --git a/app/assets/javascripts/local_manifest/form/use/field/helper/slider.js.coffee b/app/assets/javascripts/local_manifest/form/use/field/helper/slider.js.coffee
new file mode 100644 (file)
index 0000000..48c10a7
--- /dev/null
@@ -0,0 +1,8 @@
+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
index 4ac2a05..943bacb 100644 (file)
@@ -46,6 +46,11 @@ class Locmare.FormModule.ExtendField extends Backbone.View
     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
index 55e273f..8b8a56f 100644 (file)
@@ -49,6 +49,11 @@ class Locmare.FormModule.Field extends Backbone.View
     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
index 88a328c..5c3a9c9 100644 (file)
@@ -4,7 +4,8 @@ class Locmare.FormModule.FieldModule.HelperFactory
       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
diff --git a/app/assets/javascripts/locmare/form/field/helper/slider.js.coffee b/app/assets/javascripts/locmare/form/field/helper/slider.js.coffee
new file mode 100644 (file)
index 0000000..9cb0195
--- /dev/null
@@ -0,0 +1,78 @@
+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
index 2da8777..c1c7a87 100644 (file)
@@ -4,6 +4,7 @@ class Locmare.FormModule.FieldModule.TagModule.Base extends Backbone.View
   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
@@ -14,9 +15,33 @@ class Locmare.FormModule.FieldModule.TagModule.Base extends Backbone.View
     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
index 2e706f9..30a15e9 100644 (file)
@@ -6,13 +6,11 @@ class Locmare.FormModule.FieldModule.TagModule.FileTag extends Locmare.FormModul
   \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
index f93c887..cbc2ae2 100644 (file)
@@ -2,14 +2,14 @@ class Locmare.FormModule.FieldModule.TagModule.HiddenTag extends Locmare.FormMod
   \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
index 914f051..009dd50 100644 (file)
@@ -8,23 +8,24 @@ class Locmare.FormModule.FieldModule.TagModule.NumberTag extends Locmare.FormMod
   \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
index 5a15566..4416c63 100644 (file)
@@ -11,11 +11,7 @@ class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormMod
       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
index 0f3abc2..8714eb3 100644 (file)
@@ -6,12 +6,7 @@ class Locmare.FormModule.FieldModule.TagModule.TextTag extends Locmare.FormModul
   \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
index 6f81f74..8db5e16 100644 (file)
@@ -6,19 +6,18 @@ class Locmare.FormModule.FieldModule.TagModule.TextAreaTag extends Locmare.FormM
   \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
index ca747e9..bf72a94 100644 (file)
@@ -99,4 +99,44 @@ class Tag.H3 extends Backbone.View
 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
index 857dcd7..1fd86ca 100644 (file)
             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
index 1be04e1..2ba9263 100644 (file)
 //= 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
index 8a3c5ba..6197219 100644 (file)
@@ -258,6 +258,11 @@ font-family : monospace;
     width: 256px;
     margin: 3px 10px;
   }
+  .per-slider {
+    float: right;
+    width: 100px;
+    margin: 3px 10px;
+  }
 
 #elements-tabs {
     font-size: 12px;
index efb866e..61bfddf 100644 (file)
                     "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