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 d1c2ed5..33bc7c2 100644 (file)
@@ -83,9 +83,16 @@ class Locmare.Form extends Locmare.FormBase
       @delegateEvents({'submit': method_type})\r
     this\r
   \r
+  refresh: () ->\r
+    _.each @fields, (field) =>\r
+      field.refresh()\r
+    _.each @child_forms, (child_form, name) =>\r
+      child_form.refresh()\r
+  \r
   add_element: (element) ->\r
     form = Locmare.Form.factory({\r
       form_name: element.item_name(), \r
+      use_name: @use_name,\r
       item: element, \r
       mounted: @mounted, \r
       submit: null, \r
@@ -141,21 +148,29 @@ class Locmare.Form extends Locmare.FormBase
     _.each @fields, (field) =>\r
       @item.set(field.field_name, field.val())\r
     @item.unset('id')  # isNew use flag that id attr set\r
-    @trigger('post', this)\r
+    @trigger('http_post', @item.create_url(), this)\r
     return false\r
   \r
   put: () ->\r
     _.each @fields, (field) =>\r
       @item.set(field.field_name, field.val())\r
-    @trigger('put', this)\r
+    @trigger('http_post', @item.update_url(), this)\r
     return false\r
   \r
   save: (attrs = null, options = null) ->\r
+    @listenTo(@item, 'save:success', @success)\r
+    @listenTo(@item, 'save:fail', @fail)\r
     if attrs\r
       @item.save(attrs, options)\r
     else\r
       @item.save()\r
   \r
+  success: (model, response) ->\r
+    @trigger('success', model, response)\r
+  \r
+  fail: (model, response) ->\r
+    @trigger('fail', response)\r
+  \r
   valid: () ->\r
     window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
     return false\r
@@ -203,6 +218,9 @@ class Locmare.ExtendForm extends Locmare.FormBase
     this.$el.append(@div_fields.render().el)\r
     this\r
   \r
+  refresh: () ->\r
+    @field.refresh()\r
+  \r
   init_fields: () ->\r
     _.each @manifest.field_names, (field_name) =>\r
       field_manifest = @manifest.fields[field_name]\r