OSDN Git Service

a0726064ca177b798f1572a746ff8011347f3b1f
[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     _.each @zorderd_labels(), (label) =>\r
39       this.$el.append(label.$el)\r
40     _this = this\r
41     this.$el.sortable {\r
42       update: (event, ui) ->\r
43         z = 0\r
44         $('li', $(@)).map ->\r
45           $(@).attr('data-z', z)\r
46           z++\r
47         _this.trigger('sorted')\r
48     }\r
49     this\r
50   \r
51   zorderd_labels: () ->\r
52     res = []\r
53     _.each @bay().tabs, (tab) =>\r
54       res[tab.label.z()] = tab.label\r
55     res\r
56   \r
57   add_label: (label) ->\r
58     #z = label.z\r
59     @labels.push(label) # insert array\r
60     @render()  # sorting\r
61     label.add_label()\r
62   \r
63   bay: () ->\r
64     @parent.parent\r
65   \r