OSDN Git Service

0d1d3a48c541665c0773e1a5449e641bf0a0f0b1
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / element / boards.js.coffee
1 class Editor.EditorModule.DockModule.ElementBay.Boards extends Backbone.View\r
2   tagName: 'div'\r
3   className: 'boards ui-tabs-vertical ui-helper-clearfix'\r
4   \r
5   initialize: (options) ->\r
6     super(options)\r
7     @parent = options.parent\r
8     @labels = new Editor.EditorModule.DockModule.ElementBay.Labels({\r
9       parent: this\r
10     })\r
11     @listenTo(@labels, 'sorted', @sorted)\r
12   \r
13   render: () ->\r
14     this.$el.html('')\r
15     this.$el.append(@labels.render().$el)\r
16     this\r
17   \r
18   add_element_tab: (tab) ->\r
19     tab.label.render()\r
20     tab.body.render()\r
21     @labels.render()\r
22     this.$el.append(tab.body.$el)\r
23   \r
24   sorted: () ->\r
25     # data-z copy to model\r
26     @trigger('sorted')\r
27   \r
28 class Editor.EditorModule.DockModule.ElementBay.Labels extends Backbone.View\r
29   tagName: 'ul'\r
30   \r
31   initialize: (options) ->\r
32     super(options)\r
33     @parent = options.parent\r
34   \r
35   render: () ->\r
36     this.$el.html('')\r
37     this.$el.addClass('inner-elements-tabs')\r
38     _this = this\r
39     _.each @zorderd_labels(), (label) =>\r
40       this.$el.append(label.$el)\r
41       if label.element()\r
42         label.$el.mouseover -> \r
43           label.element().trigger('active')\r
44         label.$el.mouseout -> \r
45           label.element().trigger('inactive')\r
46         if label.destroy_button\r
47           label.destroy_button.render()\r
48     this.$el.sortable {\r
49       update: (event, ui) ->\r
50         z = 0\r
51         $('li', $(@)).map ->\r
52           $(@).attr('data-z', z)\r
53           z++\r
54         _this.trigger('sorted')\r
55     }\r
56     this\r
57   \r
58   zorderd_labels: () ->\r
59     res = []\r
60     _.each @bay().tabs, (tab) =>\r
61       res[tab.label.z()] = tab.label\r
62     res\r
63   \r
64   bay: () ->\r
65     @parent.parent\r
66   \r