OSDN Git Service

fix: fetch fail
[pettanr/pettanr.git] / app / assets / javascripts / pettanr / inspire.js.coffee
index d967e0a..16b36e4 100644 (file)
@@ -1,18 +1,21 @@
 class Pettanr.Inspire\r
   \r
-  constructor: (options) ->\r
+  constructor: (@item) ->\r
     _.extend(this, Backbone.Events)\r
-    @item = options.item\r
   \r
-  inspire: () -> \r
-    @item = @item.with_elements() # retake panel for 'with_elements' mode\r
-    @item.fetch({cache: false}).done =>\r
-      @item.attributes = @item.replaced_attributes()\r
-      delete @item.attributes['id']\r
-      @item.overwrite({})\r
-      @set_root()\r
-      @set_elements()\r
-      @save()\r
+  go: (context, options) -> \r
+    @item.edit({\r
+      context: this, \r
+      success: (@item) ->\r
+        @item.boosts 'post'\r
+        delete @item.attributes['id']\r
+        @item.overwrite({})\r
+        @set_root()\r
+        @set_elements()\r
+        @save(context, options)\r
+      fail: (model, response) ->\r
+        options.fail.call(context, response)\r
+    })\r
   \r
   set_root: () ->\r
     @root_form = Locmare.Form.factory({\r
@@ -34,15 +37,26 @@ class Pettanr.Inspire
       form.add_elements()\r
       form\r
   \r
-  save: () ->\r
+  save: (context, options) ->\r
     # merge panel and elements\r
     attrs = @root_form.save_data()\r
     delete attrs['id']\r
     _.extend(attrs, @elements_save_data())\r
     # save json data by panel form\r
-    @listenTo(@root_form, 'success', @post_success)\r
-    @listenTo(@root_form, 'fail', @post_fail)\r
-    @root_form.save(attrs)\r
+    new_panel = new Pettanr.Panel.Edit()\r
+    new_form = Locmare.Form.factory({\r
+      form_name: new_panel.item_name(), \r
+      use_name: 'default' \r
+      item: new_panel, \r
+      submit: 'default' \r
+    })\r
+    success = (model, response) ->\r
+      options.success.call(context, model)\r
+    fail = (model, response) ->\r
+      options.fail.call(context, response)\r
+    @listenTo(new_form, 'success', success)\r
+    @listenTo(new_form, 'fail', fail)\r
+    new_form.save(attrs)\r
   \r
   elements_save_data: () ->\r
     attrs = {}\r
@@ -65,9 +79,3 @@ class Pettanr.Inspire
         attrs[name].push(d)\r
     attrs\r
   \r
-  post_success: (model, response) ->\r
-    @trigger('inspire', model)\r
-  \r
-  post_fail: (model, response) ->\r
-    @trigger('fail', response)\r
-  \r