class Editor @Editor = Editor class Editor.EditorModule class Editor.EditorModule.DockBase extends Pettanr.View initialize: (options) -> @parent = options.parent @tabs = [] add_tab: (tab, label, body) -> @tabs.push tab tab.label = label tab.body = body tab remove_tab: (index) -> @tabs.splice(index, 1) root_item: () -> @parent.root_item() class Editor.EditorModule.DockModule class Editor.EditorModule.DockModule.Tab extends Editor.EditorModule.DockBase initialize: (options) -> super(options) @index = options.index @name = options.name @label = null @body = null dom_id: () -> console.log "no dom_id" dom_class: () -> console.log "no dom_class" class Editor.EditorModule.DockModule.Bay extends Editor.EditorModule.DockModule.Tab initialize: (options) -> super(options) dock: () -> @parent root_item: () -> @parent.root_item() dom_id: () -> @parent.dom_id() + '-bay-' + @name dom_class: () -> @parent.dom_class() + '-bay' dom_labels_class: () -> @dom_class() + '-labels' class Editor.EditorModule.DockModule.SimpleBay extends Editor.EditorModule.DockModule.Bay tagName: 'div' initialize: (options) -> super(options) class Editor.EditorModule.DockModule.BoardBay extends Editor.EditorModule.DockModule.Bay tagName: 'div' initialize: (options) -> super(options) @boards = null render: () -> this.$el.html('') @el.className = @body.dom_class() @append_rb() this dom_labels_class: () -> @dom_class() + "-labels" dom_bodys_class: () -> @dom_class() + "-bodys" class Editor.EditorModule.DockModule.Board extends Editor.EditorModule.DockModule.Tab initialize: (options) -> super(options) root_item: () -> @parent.root_item() bay: () -> @parent dock: () -> @bay().dock() bay_index: () -> @bay().index dom_id: () -> @bay().dom_id() + '-board-' + @name dom_class: () -> @bay().dom_class() + '-board' header_class: () -> "" class Editor.EditorModule.DockModule.Bucket extends Pettanr.View initialize: (options) -> super(options) @parent = options.parent class Editor.EditorModule.DockModule.FormBucket extends Editor.EditorModule.DockModule.Bucket initialize: (options) -> super(options) @form = options.form render: () -> @form.render() class Editor.EditorModule.DockModule.TabModule class Editor.EditorModule.DockModule.TabModule.Label extends Pettanr.View initialize: (options) -> @parent = options.parent @caption = options.caption root_item: () -> @parent.root_item() index: () -> @parent.index name: () -> @parent.name dom_id: () -> console.log "no dom_id" dom_class: () -> console.log "no dom_class" body: () -> @parent.body class Editor.EditorModule.DockModule.TabModule.Body extends Pettanr.View initialize: (options) -> @parent = options.parent root_item: () -> @parent.root_item() index: () -> @parent.index name: () -> @parent.name label: () -> @parent.label dom_id: () -> console.log "no dom_id" dom_class: () -> console.log "no dom_class" class Editor.EditorModule.DockModule.TabModule.BayLabel extends Editor.EditorModule.DockModule.TabModule.Label tagName: 'li' bay: () -> @parent dock: () -> @bay().dock() dom_id: () -> @bay().dom_id() + '-label' dom_class: () -> @bay().dom_class() + '-label' render: () -> this.$el.html('') @el.className = @dom_class() a = new Tag.A({attr: {href: '#' + @body().dom_id()}, content: @caption}) this.$el.html(a.render().el) this class Editor.EditorModule.DockModule.TabModule.BayBody extends Editor.EditorModule.DockModule.TabModule.Body initialize: (options) -> super(options) render: () -> this.$el.html('') this.$el.attr('id', @dom_id()) this bay: () -> @parent dock: () -> @bay().dock() dom_id: () -> @bay().dom_id() + '-body' dom_class: () -> @bay().dom_class() + '-body' class Editor.EditorModule.DockModule.TabModule.BoardLabel extends Editor.EditorModule.DockModule.TabModule.Label tagName: 'li' initialize: (options) -> super(options) board: () -> @parent bay: () -> @board().bay() dock: () -> @bay().dock() element: () -> @parent.element bay_name: () -> bay().name dom_id: () -> @board().dom_id() + '-label' dom_class: () -> @board().dom_class() + '-label' face: () -> linked_elements_tab = new Tag.A({ attr: {href: '#' + @board().body.dom_id() }, content: @element().element_face().render().el }) this.$el.append(linked_elements_tab.render().el) @destroy_button = new Editor.EditorModule.DestroyButton() @listenTo(@destroy_button, 'destroy', @destroy) this.$el.append(@destroy_button.render().el) render: () -> this.$el.html('') this.$el.attr('id', @dom_id()) this.$el.className = @dom_class() @face() this destroy: () -> @trigger('destroy', @element()) class Editor.EditorModule.DockModule.TabModule.BoardBody extends Editor.EditorModule.DockModule.TabModule.Body board: () -> @parent bay: () -> @board().bay() dock: () -> @bay().dock() dom_id: () -> @board().dom_id() + '-body' dom_class: () -> @board().dom_class() + '-body' class Editor.EditorModule.DestroyButton extends Pettanr.View tagName: 'button' render: () -> this.$el.html('') this.$el.button { icons: { primary: 'ui-icon-close', secondary: null }, text: false } @delegateEvents({'click': @click}) this dom_id: () -> @dom_id() + '-destroy_button' click: () -> @trigger('destroy')