OSDN Git Service

t#:
[pettanr/pettanr.git] / app / assets / javascripts / locmare / form / field.js.coffee
index 4b559a1..9dbd00a 100644 (file)
@@ -1,4 +1,4 @@
-class Locmare.FormModule.Field extends Backbone.View\r
+class Locmare.FormModule.Field extends Pettanr.View\r
   tagName: 'div'\r
   className: 'field'\r
   \r
@@ -9,9 +9,11 @@ class Locmare.FormModule.Field extends Backbone.View
     @label = Locmare.FormModule.FieldModule.LabelFactory.factory this, @field_manifest.label\r
     @tag = Locmare.FormModule.FieldModule.TagFactory.factory this, @field_manifest.tag\r
     @helpers = new Locmare.FormModule.FieldModule.Helpers({field: this, field_manifest: @field_manifest})\r
-    @rb = @row_break()\r
-    @options = {'data-model': @field_manifest.form_name}\r
     @on('change', @change)\r
+    item = @item()\r
+    @listenTo(item, 'resize', @refresh)\r
+    @listenTo(item, 'move', @refresh)\r
+    @listenTo(item, 'sort', @refresh)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -20,17 +22,17 @@ class Locmare.FormModule.Field extends Backbone.View
     this.$el.append(@helpers.render().el)\r
     this\r
   \r
+  refresh: () ->\r
+    @tag.refresh()\r
+    @helpers.refresh()\r
+  \r
   change: () ->\r
-    @form.trigger('change:field', this)\r
+    @set(@val(), {silent: true})\r
+    @item().trigger('input:' + @field_name)\r
+    @item().trigger('input')\r
     \r
-  mounted: () ->\r
-    if @form.mounted\r
-      0\r
-    else\r
-      1\r
-  \r
-  mount_option: () ->\r
-    {'mount': @mounted()}\r
+  is_extend: () ->\r
+    false\r
   \r
   item: () ->\r
     @form.item\r
@@ -41,11 +43,15 @@ class Locmare.FormModule.Field extends Backbone.View
   value: () ->\r
     @item().get(@field_manifest.column_name())\r
   \r
-  set: (v) ->\r
-    @item().set(@field_manifest.column_name(), v)\r
+  set: (v, opt = null) ->\r
+    a = {}\r
+    a[@field_manifest.column_name()] = v\r
+    @item().set(a, opt)\r
   \r
-  options: (tag_options = {}) ->\r
-    tag_options\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
@@ -53,14 +59,20 @@ class Locmare.FormModule.Field extends Backbone.View
   form_name: () ->\r
     @form.form_name\r
   \r
-  row_break: () ->\r
+  has_row_break: () ->\r
     if @field_manifest.row_break\r
-      new Tag.RowBreak()\r
+      true\r
+    else\r
+      false\r
+  \r
+  row_break: () ->\r
+    if @has_row_break()\r
+      Pettanr.View.rb()\r
     else\r
       null\r
   \r
 class Locmare.FormModule.FieldModule\r
-class Locmare.FormModule.FieldModule.Helpers extends Backbone.View\r
+class Locmare.FormModule.FieldModule.Helpers extends Pettanr.View\r
   tagName: 'span'\r
   \r
   initialize: (options) ->\r
@@ -76,3 +88,7 @@ class Locmare.FormModule.FieldModule.Helpers extends Backbone.View
       this.$el.append(helper.render().el)\r
     this\r
   \r
+  refresh: () -> \r
+    _.each @helpers, (helper) =>\r
+      helper.refresh()\r
+  \r