OSDN Git Service

fix: scenario
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / dock.js.coffee
index 40f079d..2df7e39 100644 (file)
@@ -41,8 +41,13 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
       })\r
     )\r
     @listenTo(@root_bay.body, 'http_post', @http_post)\r
+    @listenTo(@root_bay.body, 'save:success', @post_success)\r
+    @listenTo(@root_bay.body, 'save:fail', @post_fail)\r
     @listenTo(@element_bay, 'add:credit', @add_credit)\r
     @listenTo(@element_bay, 'pick', @pick)\r
+    @listenTo(@element_bay, 'dialog:open', @open_dialog)\r
+    @listenTo(@element_bay, 'dialog:close', @close_dialog)\r
+    @listenTo(@element_bay, 'destroy', @destroy)\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -78,16 +83,37 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
     @trigger('http_post', url, this)  # send dock\r
     false\r
   \r
+  post_success: (model, response) ->\r
+    @trigger('save:success', model, response)\r
+  \r
+  post_fail: (model, response) ->\r
+    @trigger('save:fail', response)\r
+  \r
   add_credit: (element) ->\r
     @trigger('add:credit', element)\r
   \r
-  save_data: () ->\r
+  save: () ->\r
+    # merge panel and elements\r
     attrs = @root_bay.save_data()\r
     _.extend(attrs, @element_bay.save_data())\r
-    attrs\r
+    $.extend(true, attrs, @scenario_bay.save_data()) # deep merge by jQuery\r
+    # save json data by panel form\r
+    @root_bay.body.form.save(attrs)\r
   \r
   pick: (new_item) ->\r
-    t = @scenario_bay.length()\r
-    new_item.set({t: t}, {silent: true})\r
-    @scenario_bay.add_element(new_item)\r
+    @scenario_bay.pick(new_item)\r
+    @trigger('add:element', new_item)\r
+  \r
+  open_dialog: (dialog) ->\r
+    @trigger('dialog:open', dialog)\r
+  \r
+  close_dialog: (dialog) ->\r
+    @trigger('dialog:close', dialog)\r
+  \r
+  destroy: (element) ->\r
+    @trigger('destroy', element)\r
+    @scenario_bay.remove_element(element)\r
+  \r
+  quit: () ->\r
+    @root_bay.body.form.quit()\r
   \r