OSDN Git Service

fix: new elm
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / scenario / elements.js.coffee
1 class Editor.EditorModule.DockModule.ScenarioBay.Elements extends Backbone.View\r
2   tagName: 'ul'\r
3   className: 'scenarios_elements'\r
4   \r
5   initialize: (options) ->\r
6     super(options)\r
7     @parent = options.parent\r
8     @element_lis = []\r
9   \r
10   render: () ->\r
11     this.$el.html('')\r
12     _.each @scenario_elements(), (element_li) =>\r
13       this.$el.append(element_li.render().$el)\r
14     _this = this\r
15     this.$el.sortable {\r
16       update: (event, ui) ->\r
17         _this.reorder()\r
18         _this.trigger('sorted')\r
19     }\r
20     this\r
21   \r
22   refresh: () ->\r
23     _.each @element_lis, (element_li) =>\r
24       element_li.refresh()\r
25   \r
26   scenario_elements: () ->\r
27     res = []\r
28     _.each @element_lis, (element_li) =>\r
29       res[element_li.t()] = element_li\r
30     res\r
31   \r
32   add_element: (element) ->\r
33     e = new Editor.EditorModule.DockModule.ScenarioBay.Element({\r
34       parent: this, \r
35       element: element\r
36     })\r
37     @element_lis.push(e) # insert array\r
38     @render()\r
39     e\r
40   \r
41   find_li: (element) ->\r
42     li = null\r
43     _.each @element_lis, (element_li) =>\r
44       if element_li.element.cid == element.cid\r
45         li = element_li\r
46         return\r
47     li\r
48   \r
49   remove_element: (element) ->\r
50     li = @find_li(element)\r
51     li.remove()\r
52     delete @element_lis[li]\r
53     @element_lis = _.compact(@element_lis)\r
54     @unshift_z()\r
55   \r
56   unshift_z: () ->\r
57     @reorder()\r
58   \r
59   reorder: () ->\r
60     t = 0\r
61     $('.t-label', this.$el).map ->\r
62       $(@).attr('data-t', t)\r
63       t++\r
64   \r
65   sorted: () ->\r
66     # data-t copy to model\r
67     @trigger('sorted')\r
68   \r