- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- @element_models = options.element_models\r
- \r
- render: () ->\r
- _.each @element_models, (model) =>\r
- button = new Editor.EditorModule.DockModule.NewElementButton({\r
- parent: this, model: model\r
- })\r
- this.$el.append(button.render().el)\r
- this\r
- \r
-class Editor.EditorModule.DockModule.NewElementButton extends Backbone.View\r
- tagName: 'div'\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- @model = options.model\r
- \r
- render: () ->\r
- this.$el.html('')\r
- icon = new Pettanr.Image.Icon({item: @model})\r
- linked_icon = new Editor.EditorModule.DockModule.NewElementLinkedButton({\r
- attr: {href: '#' },\r
- content: icon.render().el\r
- })\r
- @listenTo(linked_icon, 'click', @click)\r
- this.$el.append(linked_icon.render().el)\r
- this\r
- \r
- click: () ->\r
- params = {\r
- controller: @model.path_name(), action: 'index',\r
- page_size: 6, format: 'pick'\r
- }\r
- @dialog().get(params, null)\r
- @set_form()\r
- \r
- set_form: () ->\r
- @form_wrapper().select(@model)\r
- \r
- operators: () ->\r
- @editor().operators\r
- \r
- form_wrapper: () ->\r
- @parent.parent.form_wrapper\r
- \r
- dock: () ->\r
- @parent.parent.dock()\r
- \r
- dialog: () ->\r
- @editor().dialog\r
- \r
- editor: () ->\r
- @dock().parent\r
- \r
-class Editor.EditorModule.DockModule.NewElementLinkedButton extends Tag.A\r
- \r
- click: () ->\r
- @trigger('click')\r
- return false\r
- \r
-class Editor.EditorModule.DockModule.NewElementFormWrapper extends Backbone.View\r
- tagName: 'div'\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- \r
- clear: () ->\r
- this.$el.html('')\r
- this\r
- \r
- render: () ->\r
- this.$el.html(@model.item_name())\r
- \r
- select: (model) ->\r
- @model = model\r
- @render()\r
- \r
-class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.SimpleBay\r
- \r
- render: () ->\r
- @body.render()\r
- \r
- add_element: (element) ->\r
- element_li = @body.add_element(element)\r
- element_li.body.form\r
- \r
- save_data: () ->\r
- @body.form.save_data()\r
- \r
-class Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
- \r
-class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @elements = new Editor.EditorModule.DockModule.ScenarioBay.Elements({\r
- parent: this, \r
- })\r
- @listenTo(@elements, 'sorted', @sorted)\r
- \r
- add_element: (element) ->\r
- element_li = @elements.add_element(element)\r
- \r
- render: () ->\r
- super()\r
- this.$el.append(@elements.render().el)\r
- @delegateEvents({'activate': 'activate'})\r
- this\r
- \r
- activate: () ->\r
- @elements.refresh()\r
- \r
- sorted: () ->\r
- # data-t copy to model\r
- _.each @elements.element_lis, (element_li) =>\r
- t = parseInt(element_li.$el.attr('data-t'))\r
- element_li.element.set({\r
- t: t\r
- }, {silent: true})\r
- element_li.element.trigger('sort')\r
- \r
- panel_body: () ->\r
- @dock().editor().body\r
- \r
- save_data: () ->\r
- attrs = {}\r
- _.each @tabs, (tab) ->\r
- return if not tab.element # without new element tab\r
- form = tab.body.form\r
- name = form.item.table_name() + '_attributes'\r
- attrs[name] ||= []\r
- attrs[name].push(form.save_data())\r
- attrs\r
- \r
-class Editor.EditorModule.DockModule.ScenarioBay.Elements extends Backbone.View\r
- tagName: 'ul'\r
- className: 'scenarios_elements'\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- @element_lis = []\r
- \r
- render: () ->\r
- this.$el.html('')\r
- _.each @scenario_elements(), (element_li) =>\r
- this.$el.append(element_li.render().$el)\r
- _this = this\r
- this.$el.sortable {\r
- update: (event, ui) ->\r
- t = 0\r
- $('.t-label', $(@)).map ->\r
- $(@).attr('data-t', t)\r
- t++\r
- _this.trigger('sorted')\r
- }\r
- this\r
- \r
- refresh: () ->\r
- _.each @element_lis, (element_li) =>\r
- element_li.refresh()\r
- \r
- scenario_elements: () ->\r
- res = []\r
- _.each @element_lis, (element_li) =>\r
- res[element_li.t()] = element_li\r
- res\r
- \r
- add_element: (element) ->\r
- e = new Editor.EditorModule.DockModule.ScenarioBay.Element({\r
- parent: this, \r
- element: element\r
- })\r
- @element_lis.push(e) # insert array\r
- @render()\r
- e\r
- \r
- sorted: () ->\r
- # data-t copy to model\r
- @trigger('sorted')\r
- \r
-class Editor.EditorModule.DockModule.ScenarioBay.Element extends Backbone.View\r
- tagName: 'li'\r
- className: 't-label'\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- @element = options.element\r
- \r
- render: () ->\r
- this.$el.html('')\r
- this.$el.attr('data-t', @t())\r
- @label = new Editor.EditorModule.DockModule.ScenarioBay.ElementLabel({\r
- parent: this, \r
- })\r
- @body = new Editor.EditorModule.DockModule.ScenarioBay.ElementBody({\r
- parent: this, \r
- })\r
- this.$el.append(@label.render().$el)\r
- this.$el.append(@body.render().$el)\r
- rb = new Tag.RowBreak()\r
- this.$el.append(rb.render().el)\r
- this\r
- \r
- refresh: () ->\r
- @body.form.refresh()\r
- \r
- t: () ->\r
- @element.get('t')\r
- \r
- dom_id: () ->\r
- super() + '-' + @element.get('id') # use tab index\r
- \r
-class Editor.EditorModule.DockModule.ScenarioBay.ElementLabel extends Backbone.View\r
- className: 'scenario-label'\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- \r
- render: () ->\r
- this.$el.append(@element().element_face().render().el)\r
- _this = this\r
- this.$el.mouseover -> \r
- _this.element().trigger('active')\r
- this.$el.mouseout -> \r
- _this.element().trigger('inactive')\r
- this\r
- \r
- element: () ->\r
- @parent.element\r
- \r
- elements: () ->\r
- @parent.parent\r
- \r
- bay: () ->\r
- @elements().parent\r
- \r
- dock: () ->\r
- @bay().dock()\r
- \r
-class Editor.EditorModule.DockModule.ScenarioBay.ElementBody extends Backbone.View\r
- \r
- initialize: (options) ->\r
- super(options)\r
- @parent = options.parent\r
- @form = Locmare.Form.factory({\r
- form_name: @element().item_name(), \r
- use_name: 'scenario' \r
- item: @element(), \r
- mounted: @mounted(), \r
- submit: null, \r
- operators: @dock().editor().operators,\r
- action: '/' + @element().table_name() + '/' + Pettanr.to_s(@element().get('id'))\r
- })\r
- \r
- render: () ->\r
- this.$el.html(@form.render().el)\r
- this\r
- \r
- element: () ->\r
- @parent.element\r
- \r
- elements: () ->\r
- @parent.parent\r
- \r
- bay: () ->\r
- @elements().parent\r
- \r
- dock: () ->\r
- @bay().dock()\r
- \r
- mounted: () ->\r
- true\r
- \r
- element: () ->\r
- @parent.element\r
- \r
-class Editor.EditorModule.DockModule.NewBay extends Editor.EditorModule.DockModule.BoardBay\r
- \r
-\r
-class Editor.EditorModule.DockModule.TabModule.NewBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
- \r
-\r
-class Editor.EditorModule.DockModule.TabModule.NewBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
- \r
- initialize: (options) ->\r
- super(options)\r
- \r
-class Editor.EditorModule.DockModule.NewBoard extends Editor.EditorModule.DockModule.Board\r