OSDN Git Service

color helper
[pettanr/pettanr.git] / app / assets / javascripts / locmare / form.js.coffee
index 78f5dc9..bb545af 100644 (file)
@@ -4,21 +4,21 @@
 # submit: string / 'submit'\r
 # operators: \r
 class Locmare.FormBase extends Backbone.View\r
-  tagName: 'div'\r
+  tagName: 'form'\r
   \r
   initialize: (options) ->\r
-    @form_name_with_sub_form = options.form_name_with_sub_form\r
+    @form_name = options.form_name #_with_sub_form\r
     @item = options.item\r
     @mounted = options.mounted\r
     @submit = options.submit\r
     @operators = options.operators\r
-    if /\./.test(form_name_with_sub_form)\r
-      @sub_form_names = form_name_with_sub_form.split('.')\r
+    if /\./.test(@form_name)\r
+      @sub_form_names = @form_name.split('.')\r
       @form_name = @sub_form_names.last\r
       @root_form_name = @sub_form_names.shift\r
     else\r
       @sub_form_names = []\r
-      @form_name = @form_name_with_sub_form\r
+      #@form_name = @form_name\r
       @root_form_name = @form_name\r
     @manifest = LocalManifest.manifest().forms[@form_name]\r
     @fields = {}\r
@@ -38,13 +38,27 @@ class Locmare.FormBase extends Backbone.View
     '/images/'\r
   \r
 class Locmare.Form extends Locmare.FormBase\r
+  events: {\r
+    'submit': 'post'\r
+  }\r
+  \r
   initialize: (options) ->\r
     super(options)\r
     @submit = options.submit\r
+    @action = options.action\r
     @item.boosts 'post'\r
     @init_fields()\r
   \r
   render: () ->\r
+    m = if @item.isNew()\r
+      'post'\r
+    else\r
+      'put'\r
+    @attr = {\r
+      method: m,\r
+      action: @action\r
+    }\r
+    this.$el.attr(@attr)\r
     this.$el.html('')\r
     @error_explanation = null\r
     @div_fields = new Locmare.FormModule.Fields({\r
@@ -85,12 +99,6 @@ class Locmare.Form extends Locmare.FormBase
           field_manifest: field_manifest\r
         })\r
   \r
-  submit_name: () ->\r
-    if @item.isNew()\r
-      @item.table_name() + '.submit.new'\r
-    else\r
-      @item.table_name() + '.submit.edit'\r
-  \r
   submits: () ->\r
     {\r
       default: Locmare.FormModule.SubmitModule.Default\r
@@ -99,16 +107,23 @@ class Locmare.Form extends Locmare.FormBase
   submit_class: () ->\r
     @submits()[@submit]\r
   \r
+  post: () ->\r
+    attr = {}\r
+    _this = this\r
+    _.each @fields, (field) ->\r
+      _this.item.set(field.field_name, field.val())\r
+    if @item.save()\r
+      window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
+      return false\r
+    else\r
+      alert('invalid')\r
+  \r
 class Locmare.ExtendForm extends Locmare.FormBase\r
   \r
   initialize: (options) ->\r
     @parent = options.parent\r
-    @form_name = options.form_name\r
-    @item = options.item\r
-    @mounted = options.mounted\r
-    @operators = options.operators\r
     @field_name = options.field_name\r
-    super(@form_name, @item, @mounted, @operators)\r
+    super(options)\r
     @field = new Locmare.FormModule.Field({\r
       form: @parent, \r
       field_name: @field_name, \r
@@ -144,6 +159,7 @@ class Locmare.FormModule.Fields extends Backbone.View
     _this = this\r
     _.each @fields, (field) ->\r
       _this.$el.append(field.render().el)\r
+      _this.$el.append(field.rb.render().el) if field.rb\r
     this\r
   \r
 class Locmare.FormModule.SubmitModule\r
@@ -155,6 +171,13 @@ class Locmare.FormModule.SubmitModule.Default extends Backbone.View
     @form = options.form\r
   \r
   render: () ->\r
-    this.$el.html('<input type="submit" name="commit" class="submit" value="' + @form.submit_name() + '"></input>')\r
+    caption = I18n.t(@submit_name())\r
+    this.$el.html('<input type="submit" name="commit" class="submit" value="' + caption + '"></input>')\r
     this\r
   \r
+  submit_name: () ->\r
+    if @form.item.isNew()\r
+      @form.item.table_name() + '.submit.new'\r
+    else\r
+      @form.item.table_name() + '.submit.edit'\r
+  \r