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 9a32fbd..f9ec80f 100644 (file)
@@ -22,6 +22,10 @@ class Locmare.FormBase extends Backbone.View
       @root_form_name = @form_name\r
     @manifest = LocalManifest.manifest().forms[@form_name]\r
     @fields = {}\r
+    @on('change:field', @change)\r
+  \r
+  change: (field) ->\r
+    console.log(field.field_name)\r
   \r
   fold_extend_settings: (params) ->\r
     @item.my_class().fold_extend_settings params[@item.item_name()]\r
@@ -39,6 +43,13 @@ class Locmare.FormBase extends Backbone.View
   \r
 class Locmare.Form extends Locmare.FormBase\r
   \r
+  @factory: (options) ->\r
+    custom_form = Pettanr.Views[Pettanr.camelize(options.item.model_name())].Form\r
+    if custom_form\r
+      new custom_form(options)\r
+    else\r
+      new Locmare.Form(options)\r
+  \r
   initialize: (options) ->\r
     super(options)\r
     @submit = options.submit\r
@@ -59,7 +70,7 @@ class Locmare.Form extends Locmare.FormBase
     this.$el.html('')\r
     @error_explanation = null\r
     @div_fields = new Locmare.FormModule.Fields({\r
-      fields: @fields\r
+      parent: this, fields: @fields\r
     })\r
     #this.$el.append(@error_explanation.render().el) if not @error_explanation\r
     this.$el.append(@div_fields.render().el)\r
@@ -166,6 +177,7 @@ class Locmare.FormModule.Fields extends Backbone.View
   className: 'fields'\r
   \r
   initialize: (options) ->\r
+    @parent = options.parent\r
     @fields = options.fields\r
   \r
   render: () ->\r