OSDN Git Service

fix: views
[pettanr/pettanr.git] / app / assets / javascripts / pettanr / inspire.js.coffee
index d967e0a..1943085 100644 (file)
@@ -1,10 +1,9 @@
 class Pettanr.Inspire\r
   \r
-  constructor: (options) ->\r
+  constructor: (@item) ->\r
     _.extend(this, Backbone.Events)\r
-    @item = options.item\r
   \r
-  inspire: () -> \r
+  go: (context, options) -> \r
     @item = @item.with_elements() # retake panel for 'with_elements' mode\r
     @item.fetch({cache: false}).done =>\r
       @item.attributes = @item.replaced_attributes()\r
@@ -12,7 +11,7 @@ class Pettanr.Inspire
       @item.overwrite({})\r
       @set_root()\r
       @set_elements()\r
-      @save()\r
+      @save(context, options)\r
   \r
   set_root: () ->\r
     @root_form = Locmare.Form.factory({\r
@@ -34,14 +33,18 @@ 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
+    success = (model, response) ->\r
+      options.success.call(context, model)\r
+    fail = (model, response) ->\r
+      options.fail.call(context, response)\r
+    @listenTo(@root_form, 'success', success)\r
+    @listenTo(@root_form, 'fail', fail)\r
     @root_form.save(attrs)\r
   \r
   elements_save_data: () ->\r
@@ -65,9 +68,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