})\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
@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
- z = @element_bay.new_tab.label.z() + 1\r
- new_item.set({z: z, 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