1 class Editor.PanelEditor extends Backbone.View
\r
3 className: 'panel-editor'
\r
5 initialize: (options) ->
\r
6 @panel = options.root_item
\r
7 @operators = options.operators
\r
8 @dialog = new Editor.PanelEditor.Dialog({
\r
11 @body = new Pettanr.Views.Panel.Body.Edit({
\r
12 panel: @root_item(),
\r
13 operators: @operators,
\r
16 @dock = new Editor.PanelEditor.Dock({parent: this})
\r
17 @credits = new Pettanr.Views.Panel.ShowModule.Credits({pictures: {}})
\r
19 list = @panel.zorderd_elements()
\r
20 _.each list, (element) =>
\r
21 element.fetch({cache: true}).done =>
\r
22 @add_element(element)
\r
23 @body.on('panel:resize', @panel_resize)
\r
24 @listenTo(@dock, 'put', @put)
\r
25 Pettanr.History.lock_url = @panel.edit_url()
\r
27 add_element: (element) ->
\r
28 panel_element_view = @body.add_element(element)
\r
29 element_tab_form = @dock.add_element_to_element_tab(element)
\r
30 scenario_tab_form = @dock.add_element_to_scenario_tab(element)
\r
31 @dig(element, panel_element_view, element_tab_form, scenario_tab_form)
\r
32 if element.constructor.has_picture()
\r
33 @credits.add_picture(element.picture())
\r
35 dig: (element, panel_element_view, element_tab_form, scenario_tab_form) ->
\r
36 _.each element.elements_items(), (child_element) =>
\r
37 child_element.fetch({cache: true}).done =>
\r
38 child_panel_element_view = panel_element_view.add_element(child_element)
\r
39 child_element_tab_form = element_tab_form.add_element(child_element)
\r
40 child_scenario_tab_form = scenario_tab_form.add_element(child_element)
\r
41 @dig(child_element, child_panel_element_view, child_element_tab_form, child_scenario_tab_form)
\r
43 remove_element: (element) ->
\r
48 # this.$el.append(@dialog.render().el)
\r
49 #@dialog.$el.dialog({autoOpen: false, width: 640, height: 560 })
\r
50 this.$el.append(@body.render().el)
\r
51 this.$el.append(@dock.render().el)
\r
52 @dock.element_bay.add_new_tab()
\r
53 this.$el.append(@credits.render().el)
\r
54 rb = new Tag.RowBreak()
\r
55 this.$el.append(rb.render().el)
\r
57 window.editor = this # enable leave cancel flag on unsave
\r
63 w = parseInt(my.width())
\r
64 h = parseInt(my.height())
\r
65 #$(trace + 'width').val(w)
\r
66 #$(trace + 'height').val(h)
\r
69 @dialog.$el.dialog('destroy')
\r
70 Pettanr.History.lock_url = null # release editor
\r
73 success = (data, textStatus) =>
\r
74 Pettanr.History.lock_url = null # release editor
\r
76 error = (data, textStatus) =>
\r
78 @dock.save({success: success, error: error})
\r
85 'editor-' + Pettanr.to_s(@root_item().get('id'))
\r
90 class Editor.PanelEditor.Dialog extends Backbone.View
\r
92 className: 'panel-editor-dialog'
\r
94 initialize: (options) ->
\r
95 @parent = options.parent
\r