1 class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
\r
5 initialize: (options) ->
\r
7 @root_bay = new Editor.EditorModule.DockModule.RootBay({
\r
8 parent: this, index: 0, name: 'panel'
\r
12 new Editor.EditorModule.DockModule.TabModule.RootBayLabel({
\r
13 parent: @root_bay, caption: 'panel'
\r
15 new Editor.EditorModule.DockModule.TabModule.RootBayBody({
\r
19 @element_bay = new Editor.EditorModule.DockModule.ElementBay({
\r
20 parent: this, index: 1, name: 'elements'
\r
24 new Editor.EditorModule.DockModule.TabModule.ElementBayLabel({
\r
25 parent: @element_bay, caption: 'elements'
\r
27 new Editor.EditorModule.DockModule.TabModule.ElementBayBody({
\r
28 parent: @element_bay
\r
31 @scenario_bay = new Editor.EditorModule.DockModule.ScenarioBay({
\r
32 parent: this, index: 2, name: 'scenario'
\r
36 new Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel({
\r
37 parent: @scenario_bay, caption: 'scenario'
\r
39 new Editor.EditorModule.DockModule.TabModule.ScenarioBayBody({
\r
40 parent: @scenario_bay
\r
43 @listenTo(@root_bay.body, 'put', @put)
\r
47 l = _.map @tabs, (tab) ->
\r
49 labels = new Tag.Ul({contents: l, class_name: @dom_labels_class()})
\r
50 this.$el.append(labels.render().el)
\r
51 _.each @tabs, (tab) =>
\r
52 this.$el.append(tab.render().el)
\r
55 add_element: (element) ->
\r
56 @element_bay.add_element(element)
\r
62 @editor().dom_id() + '-dock'
\r
65 @editor().dom_class() + '-dock'
\r
67 dom_labels_class: () ->
\r
68 @dom_class() + '-labels'
\r
75 attrs = @root_bay.save_data()
\r
76 _.extend(attrs, @element_bay.save_data())
\r
79 class Editor.EditorModule.DockModule.RootBay extends Editor.EditorModule.DockModule.SimpleBay
\r
85 @body.form.save_data()
\r
87 class Editor.EditorModule.DockModule.TabModule.RootBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel
\r
89 class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody
\r
91 initialize: (options) ->
\r
93 @form = Locmare.Form.factory({
\r
94 form_name: @root_item().item_name(),
\r
95 item: @root_item(),
\r
96 mounted: @mounted(),
\r
98 operators: @dock().editor().operators,
\r
99 action: '/' + @root_item().table_name() + '/' + Pettanr.to_s(@root_item().get('id'))
\r
101 @listenTo(@form, 'put', @put)
\r
105 @el.className = @bay().body.dom_class()
\r
106 this.$el.html(@form.render().el)
\r
116 @dock().root_item()
\r
122 class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.DockModule.BoardBay
\r
124 initialize: (options) ->
\r
126 @elements_tabs = new Editor.EditorModule.DockModule.ElementBay.ElementsTabs({
\r
128 @listenTo(@elements_tabs, 'sorted', @sorted)
\r
130 add_element: (element) ->
\r
131 index = element.get('z') - 1
\r
132 tab = new Editor.EditorModule.DockModule.ElementBoard({
\r
133 parent: this, index: index, name: element.item_name(), element: element
\r
135 bb = new Editor.EditorModule.DockModule.TabModule.ElementBoardBody({parent: tab})
\r
138 new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({parent: tab, name: element.item_name()}),
\r
141 @elements_tabs.add_element_tab(tab)
\r
142 @elements_tabs.$el.tabs('refresh')
\r
146 tab = new Editor.EditorModule.DockModule.NewElementBoard({
\r
147 parent: this, index: 0, name: 'new'
\r
149 bb = new Editor.EditorModule.DockModule.TabModule.NewElementBoardBody({parent: tab})
\r
152 new Editor.EditorModule.DockModule.TabModule.NewElementBoardLabel({parent: tab}),
\r
155 @elements_tabs.add_element_tab(tab)
\r
159 this.$el.attr('id', @body.dom_id())
\r
160 this.$el.append(@elements_tabs.render().el)
\r
161 @elements_tabs.$el.tabs()
\r
166 # data-z copy to model
\r
167 _.each @tabs, (tab) ->
\r
168 if tab.element # without new_tab
\r
169 z = parseInt(tab.label.$el.attr('data-z'))
\r
173 tab.element.trigger('sort')
\r
176 @dock().editor().body
\r
180 _.each @tabs, (tab) ->
\r
181 return if not tab.element # without new element tab
\r
182 form = tab.body.form
\r
183 name = form.item.table_name() + '_attributes'
\r
185 attrs[name].push(form.save_data())
\r
188 class Editor.EditorModule.DockModule.ElementBay.ElementsTabs extends Backbone.View
\r
190 className: 'elements_tabs ui-tabs-vertical ui-helper-clearfix'
\r
192 initialize: (options) ->
\r
194 @inner_elements_tabs = new Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs({
\r
196 @listenTo(@inner_elements_tabs, 'sorted', @sorted)
\r
200 this.$el.append(@inner_elements_tabs.render().$el)
\r
203 add_element_tab: (tab) ->
\r
204 @inner_elements_tabs.add_label(tab.label)
\r
205 this.$el.append(tab.body.render().$el)
\r
208 # data-z copy to model
\r
211 class Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs extends Backbone.View
\r
214 initialize: (options) ->
\r
220 this.$el.addClass('inner-elements-tabs')
\r
221 _.each @zorderd_labels(), (label) =>
\r
222 this.$el.append(label.render().$el)
\r
224 this.$el.sortable {
\r
225 update: (event, ui) ->
\r
227 $('li', $(@)).map ->
\r
228 $(@).attr('data-z', z)
\r
230 _this.trigger('sorted')
\r
234 zorderd_labels: () ->
\r
236 _.each @labels, (label) =>
\r
237 res[label.z()] = label
\r
240 add_label: (label) ->
\r
242 @labels.push(label) # insert array
\r
246 class Editor.EditorModule.DockModule.TabModule.ElementBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel
\r
248 class Editor.EditorModule.DockModule.TabModule.ElementBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody
\r
253 class Editor.EditorModule.DockModule.ElementBoard extends Editor.EditorModule.DockModule.Board
\r
255 initialize: (options) ->
\r
257 @element = options.element
\r
260 super() + '-' + @element.get('id') # use tab index
\r
262 class Editor.EditorModule.DockModule.TabModule.ElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel
\r
266 this.$el.attr('data-z', @z())
\r
267 this.$el.removeClass('ui-corner-top')
\r
268 this.$el.addClass('ui-corner-left')
\r
270 this.$el.mouseover ->
\r
271 _this.element().trigger('active')
\r
272 this.$el.mouseout ->
\r
273 _this.element().trigger('inactive')
\r
277 @element().get('z')
\r
280 this.$el.attr('id', @dom_id())
\r
282 class Editor.EditorModule.DockModule.TabModule.ElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody
\r
284 initialize: (options) ->
\r
286 @form = Locmare.Form.factory({
\r
287 form_name: @element().item_name(),
\r
289 mounted: @mounted(),
\r
291 operators: @dock().editor().operators,
\r
292 action: '/' + @element().table_name() + '/' + Pettanr.to_s(@element().get('id'))
\r
296 this.$el.attr('id', @dom_id())
\r
297 this.$el.html(@form.render().el)
\r
300 add_element: (element) ->
\r
301 @form.add_element(element)
\r
309 class Editor.EditorModule.DockModule.NewElementBoard extends Editor.EditorModule.DockModule.Board
\r
311 initialize: (options) ->
\r
313 @panel = @parent.dock().editor().panel
\r
315 class Editor.EditorModule.DockModule.TabModule.NewElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel
\r
319 this.$el.attr('data-z', @z())
\r
320 this.$el.removeClass('ui-corner-top')
\r
321 this.$el.addClass('ui-corner-left')
\r
326 icon = new Pettanr.Image.SymbolImg({attr: {src: '/images/new.gif'}})
\r
327 linked_elements_tab = new Tag.A({
\r
328 attr: {href: '#' + @board().body.dom_id() },
\r
329 content: icon.render().el
\r
331 this.$el.append(linked_elements_tab.render().el)
\r
337 this.$el.attr('id', @dom_id())
\r
339 class Editor.EditorModule.DockModule.TabModule.NewElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody
\r
341 initialize: (options) ->
\r
345 this.$el.attr('id', @dom_id())
\r
346 @new_element_pocket = new Editor.EditorModule.DockModule.NewElementPocket({
\r
349 this.$el.append(@new_element_pocket.render().el)
\r
352 class Editor.EditorModule.DockModule.NewElementPocket extends Editor.EditorModule.DockModule.Pocket
\r
354 initialize: (options) ->
\r
356 @button_wrapper = new Editor.EditorModule.DockModule.NewElementPocket.ButtonWrapper({
\r
362 this.$el.append(@button_wrapper.clear().el)
\r
364 _.each @tabs, (tab) =>
\r
365 this.$el.append(tab.body.render().el)
\r
366 @button_wrapper.render()
\r
372 _.each @element_models(), (model) =>
\r
373 tab = new Editor.EditorModule.DockModule.NewElementPocketTab({
\r
374 parent: this, index: index, name: model.item_name(), model: model
\r
376 bb = new Editor.EditorModule.DockModule.TabModule.NewElementPocketBody({
\r
379 bl = new Editor.EditorModule.DockModule.TabModule.NewElementPocketLabel({
\r
382 @add_tab(tab, bl, bb)
\r
383 @button_wrapper.add_label(bl)
\r
387 @parent.parent.panel
\r
389 element_models: () ->
\r
390 @panel().my_class().child_models()
\r
392 class Editor.EditorModule.DockModule.NewElementPocket.ButtonWrapper extends Backbone.View
\r
394 className: 'new_elements_tabs ui-tabs-vertical ui-helper-clearfix'
\r
396 initialize: (options) ->
\r
398 @parent = options.parent
\r
399 @buttons = new Editor.EditorModule.DockModule.NewElementPocket.Buttons({
\r
408 this.$el.append(@buttons.render().$el)
\r
411 add_label: (label) ->
\r
412 @buttons.add_label(label)
\r
414 class Editor.EditorModule.DockModule.NewElementPocket.Buttons extends Backbone.View
\r
417 initialize: (options) ->
\r
419 @parent = options.parent
\r
424 this.$el.addClass('inner-new-elements-tabs')
\r
425 _.each @labels, (label) =>
\r
426 this.$el.append(label.render().$el)
\r
429 add_label: (label) ->
\r
430 @labels.push(label)
\r
432 class Editor.EditorModule.DockModule.TabModule.NewElementPocketLabel extends Editor.EditorModule.DockModule.TabModule.PocketLabel
\r
436 this.$el.removeClass('ui-corner-top')
\r
437 this.$el.addClass('ui-corner-left')
\r
441 this.$el.attr('id', @dom_id())
\r
443 class Editor.EditorModule.DockModule.TabModule.NewElementPocketBody extends Editor.EditorModule.DockModule.TabModule.PocketBody
\r
445 initialize: (options) ->
\r
449 this.$el.attr('id', @dom_id())
\r
450 @params = {controller: @model().path_name(), action: 'index'}
\r
451 @list = Locmare.ListGroup.list(
\r
452 @model().path_name(), 'index', @operators(), @params
\r
455 pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, @params)
\r
456 f = new Locmare.Filer({
\r
457 el: '#' + @dom_id(),
\r
458 item_name: @model().item_name(),
\r
459 items: @list.items(),
\r
461 operators: @operators()
\r
467 @editor().operators
\r
470 @pocket_tab().model
\r
475 class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.BoardBay
\r
477 initialize: (options) ->
\r
480 _.each @elements(), (element) =>
\r
481 tab = new Editor.EditorModule.DockModule.ScenarioBoard({
\r
482 parent: this, index: i, name: element.item_name(), element: element
\r
486 new Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel({parent: tab, caption: element.item_name()}),
\r
487 new Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody({parent: tab})
\r
493 this.$el.attr('id', @body.dom_id())
\r
494 elements_tabs = new Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs({
\r
497 this.$el.append(elements_tabs.render().el)
\r
498 _.each @tabs, (tab) =>
\r
499 this.$el.append(tab.body.render().el)
\r
500 elements_tabs.$el.tabs()
\r
504 @root_item().scenario_elements()
\r
509 class Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs extends Backbone.View
\r
513 initialize: (options) ->
\r
515 @tabs = options.tabs
\r
519 _.each @tabs, (tab) =>
\r
520 this.$el.append(tab.label.render().el)
\r
523 class Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel
\r
525 class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody
\r
527 initialize: (options) ->
\r
530 class Editor.EditorModule.DockModule.ScenarioBoard extends Editor.EditorModule.DockModule.Board
\r
532 initialize: (options) ->
\r
534 @element = options.element
\r
536 class Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel
\r
538 with_destroy_button: () ->
\r
541 class Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody
\r
543 initialize: (options) ->
\r
545 @bucket = new Editor.EditorModule.DockModule.ScenarioBucket({
\r
549 class Editor.EditorModule.DockModule.PriorityBay extends Editor.EditorModule.DockModule.BoardBay
\r
551 initialize: (options) ->
\r
554 _.each @elements(), (element) =>
\r
555 tab = new Editor.EditorModule.DockModule.PriorityBoard({
\r
556 parent: this, index: i, name: element.item_name(), element: element
\r
560 new Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel({parent: tab, name: element.item_name()}),
\r
561 new Editor.EditorModule.DockModule.TabModule.PriorityBoardBody({parent: tab})
\r
567 this.$el.attr('id', @body.dom_id())
\r
568 elements_tabs = new Editor.EditorModule.DockModule.PriorityBay.PriorityTabs({
\r
571 this.$el.append(elements_tabs.render().el)
\r
572 _.each @tabs, (tab) =>
\r
573 this.$el.append(tab.body.render().el)
\r
574 elements_tabs.$el.tabs()
\r
578 @root_item().scenario_elements()
\r
583 class Editor.EditorModule.DockModule.PriorityBay.PriorityTabs extends Backbone.View
\r
587 initialize: (options) ->
\r
589 @tabs = options.tabs
\r
593 _.each @tabs, (tab) =>
\r
594 this.$el.append(tab.label.render().el)
\r
597 class Editor.EditorModule.DockModule.TabModule.PriorityBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel
\r
599 class Editor.EditorModule.DockModule.TabModule.PriorityBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody
\r
601 initialize: (options) ->
\r
604 class Editor.EditorModule.DockModule.PriorityBoard extends Editor.EditorModule.DockModule.Board
\r
606 initialize: (options) ->
\r
608 @element = options.element
\r
613 class Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel
\r
615 with_destroy_button: () ->
\r
618 class Editor.EditorModule.DockModule.TabModule.PriorityBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody
\r
620 initialize: (options) ->
\r
622 @bucket = new Editor.EditorModule.DockModule.PriorityBucket({
\r
626 # form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]
\r
627 # form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
\r
628 # bucket = Bucket.new self,form
\r
630 class Editor.EditorModule.DockModule.NewBay extends Editor.EditorModule.DockModule.BoardBay
\r
633 class Editor.EditorModule.DockModule.TabModule.NewBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel
\r
636 class Editor.EditorModule.DockModule.TabModule.NewBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody
\r
638 initialize: (options) ->
\r
641 class Editor.EditorModule.DockModule.NewBoard extends Editor.EditorModule.DockModule.Board
\r
643 class Editor.EditorModule.DockModule.TabModule.NewBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel
\r
645 class Editor.EditorModule.DockModule.TabModule.NewBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody
\r
647 initialize: (options) ->
\r
649 # form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]
\r
650 # form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
\r
651 # bucket = Bucket.new self,form
\r