--- /dev/null
+class Editor.EditorModule.DockModule.ElementBay.Boards extends Backbone.View\r
+ tagName: 'div'\r
+ className: 'boards ui-tabs-vertical ui-helper-clearfix'\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ @parent = options.parent\r
+ @labels = new Editor.EditorModule.DockModule.ElementBay.Labels({\r
+ parent: this\r
+ })\r
+ @listenTo(@labels, 'sorted', @sorted)\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.append(@labels.render().$el)\r
+ this\r
+ \r
+ add_element_tab: (tab) ->\r
+ tab.label.render()\r
+ tab.body.render()\r
+ @labels.render()\r
+ this.$el.append(tab.body.$el)\r
+ \r
+ sorted: () ->\r
+ # data-z copy to model\r
+ @trigger('sorted')\r
+ \r
+class Editor.EditorModule.DockModule.ElementBay.Labels extends Backbone.View\r
+ tagName: 'ul'\r
+ \r
+ initialize: (options) ->\r
+ super(options)\r
+ @parent = options.parent\r
+ \r
+ render: () ->\r
+ this.$el.html('')\r
+ this.$el.addClass('inner-elements-tabs')\r
+ _.each @zorderd_labels(), (label) =>\r
+ this.$el.append(label.$el)\r
+ _this = this\r
+ this.$el.sortable {\r
+ update: (event, ui) ->\r
+ z = 0\r
+ $('li', $(@)).map ->\r
+ $(@).attr('data-z', z)\r
+ z++\r
+ _this.trigger('sorted')\r
+ }\r
+ this\r
+ \r
+ zorderd_labels: () ->\r
+ res = []\r
+ _.each @bay().tabs, (tab) =>\r
+ res[tab.label.z()] = tab.label\r
+ res\r
+ \r
+ add_label: (label) ->\r
+ #z = label.z\r
+ @labels.push(label) # insert array\r
+ @render() # sorting\r
+ label.add_label()\r
+ \r
+ bay: () ->\r
+ @parent.parent\r
+ \r