X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Feditor%2Fpanel_editor.js.coffee;h=59e2ba2f1f34b9a6c7fa95f6ab767ce306dabc00;hb=b16d4899d5e7332f572a40ba1ca32250a7952413;hp=cf0d813107a90ae396d37ca41e2ae29300cd0f3a;hpb=3f39d78e1a786b269960e57530eed81802920e6c;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index cf0d8131..59e2ba2f 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -19,34 +19,26 @@ class Editor.PanelEditor extends Backbone.View @body.on('panel:resize', @panel_resize) @listenTo(@dock, 'http_post', @http_post) + @listenTo(@dock, 'add:element', @add_element) @listenTo(@dock, 'add:credit', @add_credit) + add_element: (element) -> + @body.add_element(element) + add_credit: (element) -> @credits.add_picture(element.picture()) - add_element: (element) -> - panel_element_view = @body.add_element(element) - element_tab_form = @dock.add_element_to_element_tab(element) - scenario_tab_form = @dock.add_element_to_scenario_tab(element) - @dig(element, panel_element_view, element_tab_form, scenario_tab_form) - if element.constructor.has_picture() - @credits.add_picture(element.picture()) - - dig: (element, panel_element_view, element_tab_form, scenario_tab_form) -> - _.each element.elements_items(), (child_element) => - child_element.fetch({cache: true}).done => - child_panel_element_view = panel_element_view.add_element(child_element) - child_element_tab_form = element_tab_form.add_element(child_element) - child_scenario_tab_form = scenario_tab_form.add_element(child_element) - @dig(child_element, child_panel_element_view, child_element_tab_form, child_scenario_tab_form) - remove_element: (element) -> - + @body.remove_element(element) render: () -> this.$el.html('') this.$el.append(@dialog.render().el) - @dialog.$el.dialog({autoOpen: false, width: 640, height: 560 }) + @dialog.$el.dialog({ + autoOpen: false, + width: 750, + height: 560 + }) this.$el.append(@body.render().el) this.$el.append(@dock.render().el) this.$el.append(@credits.render().el) @@ -98,29 +90,35 @@ class Editor.PanelEditor.Dialog extends Backbone.View initialize: (options) -> @parent = options.parent @operators = options.operators + @target_model = options.target_model @history = new Pettanr.Views.History({parent: this}) @listenTo(@history, 'http_get', @http_get) @listenTo(@history, 'get', @get) + start: (@target_model, params, form) -> + @get(params, form) + + stop: () -> + @dialog().$el.dialog('close') + render: () -> this.$el.html('') - @history.render() this refresh: (view) -> this.$el.html('') - this.$el.append(@history.el) + this.$el.append(@history.render().el) rb = new Tag.RowBreak() this.$el.append(rb.render().el) this.$el.append(view.el) getter_proxy: () -> - proxy = new Pettanr.Proxy({operators: @operators}) + proxy = new Pettanr.PickerProxy({operators: @operators}) @listenTo(proxy, 'ready', @ready) @listenTo(proxy, 'title', @title) @listenTo(proxy, 'title', @push_history) @listenTo(proxy, 'done', @done) - @listenTo(proxy, 'lock', @lock) + @listenTo(proxy, 'deny', @deny) proxy http_get: (url, form) -> @@ -132,13 +130,16 @@ class Editor.PanelEditor.Dialog extends Backbone.View ready: (view) -> @listenTo(view, 'http_get', @http_get) # @listenTo(view, 'http_post', @http_post) + @listenTo(view, 'pick', @pick) + if view['is_pickable'] and view.is_pickable() + view.add_pick(@target_model) @refresh(view) + this.$el.dialog('open') done: (params) -> - this.$el.dialog('open') - lock: (params) -> - console.log('_lock') + deny: (params, form, safe_url) -> + @getter_proxy().http_get(safe_url, params, form) push_history: (params, str = null) -> @history.push(params, str) @@ -147,3 +148,6 @@ class Editor.PanelEditor.Dialog extends Backbone.View t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title') this.$el.dialog({title: t}) + pick: (item) -> + @trigger('pick', item) +