OSDN Git Service

fix: yasapp dock
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / element / boards.js.coffee
diff --git a/app/assets/javascripts/editor/panel_editor/element/boards.js.coffee b/app/assets/javascripts/editor/panel_editor/element/boards.js.coffee
new file mode 100644 (file)
index 0000000..a072606
--- /dev/null
@@ -0,0 +1,65 @@
+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