OSDN Git Service

fix:
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / element / new_board.js.coffee
1 class Editor.EditorModule.DockModule.NewElementBoard extends Editor.EditorModule.DockModule.Board\r
2   \r
3   initialize: (options) ->\r
4     super(options)\r
5     @panel = @parent.dock().editor().panel\r
6   \r
7 class Editor.EditorModule.DockModule.TabModule.NewElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
8   \r
9   initialize: (options) ->\r
10     super(options)\r
11   \r
12   render: () ->\r
13     super()\r
14     this.$el.attr('data-z', 0)\r
15     this.$el.removeClass('ui-corner-top')\r
16     this.$el.addClass('ui-corner-left')\r
17     this\r
18   \r
19   face: () ->\r
20     icon = new Pettanr.Image.SymbolImg({attr: {src: '/images/new.gif'}})\r
21     linked_elements_tab = new Tag.A({\r
22       attr: {href: '#' + @board().body.dom_id() },\r
23       content: icon.render().el\r
24     })\r
25     this.$el.append(linked_elements_tab.render().el)\r
26   \r
27   add_label: () ->\r
28     this.$el.attr('id', @dom_id())\r
29   \r
30   z: () ->\r
31     parseInt(this.$el.attr('data-z'))\r
32   \r
33 class Editor.EditorModule.DockModule.TabModule.NewElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
34   className: 'new-element-board-body'\r
35   \r
36   initialize: (options) ->\r
37     super(options)\r
38   \r
39   render: () ->\r
40     this.$el.attr('id', @dom_id())\r
41     @buttons = new Editor.EditorModule.DockModule.NewElementButtons({\r
42       parent: this, element_models: @element_models()\r
43     })\r
44     @listenTo(@buttons, 'click', @click_button)\r
45     this.$el.append(@buttons.render().el)\r
46     this\r
47   \r
48   panel: () ->\r
49     @parent.panel\r
50   \r
51   element_models: () ->\r
52     @panel().my_class().child_models()\r
53   \r
54   click_button: (model) ->\r
55     @new_element.remove() if @new_element\r
56     @new_element = new Pettanr.Views[model.singular()].NewElement({\r
57       parent: this, target_model: model\r
58     })\r
59     @listenTo(@new_element, 'pick', @pick)\r
60     this.$el.append(@new_element.clear().el)\r
61   \r
62   pick: (new_item) ->\r
63     @trigger('pick', new_item)\r
64     @new_element.render()\r
65   \r
66 class Editor.EditorModule.DockModule.NewElementButtons extends Backbone.View\r
67   tagName: 'div'\r
68   className: 'new-element-buttons'\r
69   \r
70   initialize: (options) ->\r
71     super(options)\r
72     @parent = options.parent\r
73     @element_models = options.element_models\r
74   \r
75   render: () ->\r
76     _.each @element_models, (model) =>\r
77       button = new Editor.EditorModule.DockModule.NewElementButton({\r
78         parent: this, model: model\r
79       })\r
80       @listenTo(button, 'click', @click)\r
81       this.$el.append(button.render().el)\r
82     this\r
83   \r
84   click: (model) ->\r
85     @trigger('click', model)\r
86   \r
87 class Editor.EditorModule.DockModule.NewElementButton extends Backbone.View\r
88   tagName: 'div'\r
89   \r
90   initialize: (options) ->\r
91     super(options)\r
92     @parent = options.parent\r
93     @model = options.model\r
94   \r
95   render: () ->\r
96     this.$el.html('')\r
97     icon = new Pettanr.Image.Icon({item: @model})\r
98     linked_icon = new Editor.EditorModule.DockModule.NewElementLinkedButton({\r
99       attr: {href: '#' },\r
100       content: icon.render().el\r
101     })\r
102     @listenTo(linked_icon, 'click', @click)\r
103     this.$el.append(linked_icon.render().el)\r
104     this\r
105   \r
106   click: () ->\r
107     @trigger('click', @model)\r
108   \r
109 class Editor.EditorModule.DockModule.NewElementLinkedButton extends Tag.A\r
110   \r
111   click: () ->\r
112     @trigger('click')\r
113     return false\r
114   \r