OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / assets / javascripts / locmare / form.js.coffee
index c294c1f..c12a9ca 100644 (file)
@@ -1,7 +1,7 @@
 # form_name_with_sub_form\r
 # item: editing item\r
 # submit: string / 'submit'\r
-class Locmare.FormBase extends Backbone.View\r
+class Locmare.FormBase extends Pettanr.View\r
   tagName: 'form'\r
   \r
   initialize: (options) ->\r
@@ -59,11 +59,7 @@ class Locmare.Form extends Locmare.FormBase
     @init_fields()\r
   \r
   render: () ->\r
-    @attr = {\r
-      method: @method_type(),\r
-      action: @action_url()\r
-    }\r
-    this.$el.attr(@attr)\r
+    this.$el.attr(@form_attr())\r
     this.$el.html('')\r
     @error_explanation = null\r
     @div_fields = new Locmare.FormModule.Fields({\r
@@ -79,6 +75,12 @@ class Locmare.Form extends Locmare.FormBase
       @delegateEvents({'submit': @method_type()})\r
     this\r
   \r
+  form_attr: () ->\r
+    {\r
+      method: @method_type(),\r
+      action: @action_url()\r
+    }\r
+  \r
   refresh: () ->\r
     _.each @fields, (field) =>\r
       field.refresh()\r
@@ -187,6 +189,7 @@ class Locmare.Form extends Locmare.FormBase
   success: (model, response) ->\r
     if !Pettanr.cache.restore(model.cache_key())\r
       # item is new\r
+      model.url = model.default_url()\r
       Pettanr.cache.store(model)\r
     else\r
       @item.fix()\r
@@ -242,11 +245,12 @@ class Locmare.ExtendForm extends Locmare.FormBase
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.append(@label.render().el) if not @label.hidden()\r
-    @div_fields = new Locmare.FormModule.Fields({\r
-      fields: @fields\r
-    })\r
-    this.$el.append(@div_fields.render().el)\r
+    if !@is_hidden()\r
+      this.$el.append(@label.render().el) if not @label.hidden()\r
+      @div_fields = new Locmare.FormModule.Fields({\r
+        fields: @fields\r
+      })\r
+      this.$el.append(@div_fields.render().el)\r
     this\r
   \r
   refresh: () ->\r
@@ -267,6 +271,9 @@ class Locmare.ExtendForm extends Locmare.FormBase
   val: () ->\r
     JSON.stringify(@item.attributes)\r
   \r
+  is_hidden: () ->\r
+    _.isEmpty(@manifest.field_names)\r
+  \r
   init_fields: () ->\r
     _.each @manifest.field_names, (field_name) =>\r
       field_manifest = @manifest.fields[field_name]\r
@@ -283,8 +290,17 @@ class Locmare.ExtendForm extends Locmare.FormBase
   is_extend: () ->\r
     true\r
   \r
+  has_row_break: () ->\r
+    true\r
+  \r
+  row_break: () ->\r
+    if @has_row_break()\r
+      Pettanr.View.rb()\r
+    else\r
+      null\r
+  \r
 class Locmare.FormModule\r
-class Locmare.FormModule.Fields extends Backbone.View\r
+class Locmare.FormModule.Fields extends Pettanr.View\r
   tagName: 'div'\r
   className: 'fields'\r
   \r
@@ -296,11 +312,11 @@ class Locmare.FormModule.Fields extends Backbone.View
     this.$el.html('')\r
     _.each @fields, (field) =>\r
       this.$el.append(field.render().el)\r
-      this.$el.append(field.rb.render().el) if field.rb\r
+      this.$el.append(field.row_break()) if field.has_row_break()\r
     this\r
   \r
 class Locmare.FormModule.SubmitModule\r
-class Locmare.FormModule.SubmitModule.Default extends Backbone.View\r
+class Locmare.FormModule.SubmitModule.Default extends Pettanr.View\r
   tagName: 'div'\r
   className: 'actions'\r
   \r