OSDN Git Service

fix editor
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / dock.js.coffee
1 class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase\r
2   tagName: 'div'\r
3   className: 'dock'\r
4   \r
5   initialize: (options) ->\r
6     super(options)\r
7     @root = new Editor.EditorModule.DockModule.RootBay({\r
8       parent: this, index: 0, name: 'panel'\r
9     })\r
10     @add_tab(\r
11       @root, \r
12       new Editor.EditorModule.DockModule.TabModule.RootBayLabel({\r
13         parent: @root, caption: 'panel'\r
14       }), \r
15       new Editor.EditorModule.DockModule.TabModule.RootBayBody({\r
16         parent: @root\r
17       })\r
18     )\r
19     @element = new Editor.EditorModule.DockModule.ElementBay({\r
20       parent: this, index: 1, name: 'elements'\r
21     })\r
22     @add_tab(\r
23       @element, \r
24       new Editor.EditorModule.DockModule.TabModule.ElementBayLabel({\r
25         parent: @element, caption: 'elements'\r
26       }), \r
27       new Editor.EditorModule.DockModule.TabModule.ElementBayBody({\r
28         parent: @element\r
29       })\r
30     )\r
31     @scenario = new Editor.EditorModule.DockModule.ScenarioBay({\r
32       parent: this, index: 2, name: 'scenario'\r
33     })\r
34     @add_tab(\r
35       @scenario, \r
36       new Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel({\r
37         parent: @scenario, caption: 'scenario'\r
38       }), \r
39       new Editor.EditorModule.DockModule.TabModule.ScenarioBayBody({\r
40         parent: @scenario\r
41       })\r
42     )\r
43   \r
44   render: () ->\r
45     this.$el.html('')\r
46     l = _.map @tabs, (tab) ->\r
47       tab.label\r
48     labels = new Tag.Ul({contents: l, class_name: @dom_labels_class()})\r
49     this.$el.append(labels.render().el)\r
50     _.each @tabs, (tab) =>\r
51       this.$el.append(tab.render().el)\r
52     this\r
53   \r
54   add_element: (element) ->\r
55     @element.add_element(element)\r
56   \r
57   editor: () ->\r
58     @parent\r
59   \r
60   dom_id: () ->\r
61     @editor().dom_id() + '-dock'\r
62   \r
63   dom_class: () ->\r
64     @editor().dom_class() + '-dock'\r
65   \r
66   dom_labels_class: () ->\r
67     @dom_class() + '-labels'\r
68   \r
69 class Editor.EditorModule.DockModule.RootBay extends Editor.EditorModule.DockModule.SimpleBay\r
70   \r
71   render: () ->\r
72     @body.render()\r
73   \r
74 class Editor.EditorModule.DockModule.TabModule.RootBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
75   \r
76 class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
77   \r
78   initialize: (options) ->\r
79     super(options)\r
80     @form = new Locmare.Bucket.factory(\r
81       @root_item().item_name(), \r
82       @root_item(), \r
83       @mounted(), \r
84       'default', \r
85       @dock().editor().operators\r
86     )\r
87     @bucket = new Editor.EditorModule.DockModule.FormBucket({\r
88       parent: this, form: @form\r
89     })\r
90   \r
91   render: () ->\r
92     super()\r
93     @el.className = @bay().body.dom_class()\r
94     this.$el.html(@bucket.render().el)\r
95     this\r
96   \r
97   mounted: () ->\r
98     true\r
99   \r
100   dock: () ->\r
101     @parent.dock()\r
102   \r
103   root_item: () ->\r
104     @dock().root_item()\r
105   \r
106 class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.DockModule.BoardBay\r
107   \r
108   initialize: (options) ->\r
109     super(options)\r
110   \r
111   add_element: (element) ->\r
112     index = element.get('z') - 1\r
113     tab = new Editor.EditorModule.DockModule.ElementBoard({\r
114       parent: this, index: index, name: element.item_name(), element: element\r
115     })\r
116     bb = new Editor.EditorModule.DockModule.TabModule.ElementBoardBody({parent: tab})\r
117     @add_tab(\r
118       tab, \r
119       new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({parent: tab, name: element.item_name()}), \r
120       bb\r
121     )\r
122     bb\r
123   \r
124   add_new_tab: () ->\r
125   \r
126   render: () ->\r
127     this.$el.html('')\r
128     this.$el.attr('id', @body.dom_id())\r
129     elements_tabs = new Editor.EditorModule.DockModule.ElementBay.ElementsTabs({\r
130       tabs: @tabs\r
131     })\r
132     this.$el.append(elements_tabs.render().el)\r
133     elements_tabs.$el.tabs()\r
134     elements_tabs.$el.addClass('ui-tabs-vertical ui-helper-clearfix')\r
135     $("li", elements_tabs.$el).removeClass('ui-corner-top')\r
136     $("li", elements_tabs.$el).addClass('ui-corner-left')\r
137     this\r
138   \r
139   panel_body: () ->\r
140     @dock().editor().body\r
141   \r
142   elements: () ->\r
143     @root_item().scenario_elements()\r
144   \r
145 class Editor.EditorModule.DockModule.ElementBay.ElementsTabs extends Backbone.View\r
146   tagName: 'div'\r
147   className: 'elements_tabs ui-tabs-vertical ui-helper-clearfix'\r
148   \r
149   initialize: (options) ->\r
150     super(options)\r
151     @tabs = options.tabs\r
152   \r
153   render: () ->\r
154     this.$el.html('')\r
155     labels = _.map @tabs, (tab) =>\r
156       tab.label\r
157     inner_elements_tabs = new Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs({\r
158       labels: labels\r
159     })\r
160     this.$el.append(inner_elements_tabs.render().el)\r
161     _.each @tabs, (tab) =>\r
162       this.$el.append(tab.body.render().el)\r
163     this\r
164   \r
165 class Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs extends Backbone.View\r
166   tagName: 'ul'\r
167   \r
168   initialize: (options) ->\r
169     super(options)\r
170     @labels = options.labels\r
171   \r
172   render: () ->\r
173     this.$el.html('')\r
174     _.each @labels, (label) =>\r
175       this.$el.append(label.render().el)\r
176     this\r
177   \r
178 class Editor.EditorModule.DockModule.TabModule.ElementBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
179   \r
180 class Editor.EditorModule.DockModule.TabModule.ElementBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
181   \r
182   render: () ->\r
183     @body.render()\r
184   \r
185 class Editor.EditorModule.DockModule.ElementBoard extends Editor.EditorModule.DockModule.Board\r
186   \r
187   initialize: (options) ->\r
188     super(options)\r
189     @element = options.element\r
190   \r
191   dom_id: () ->\r
192     super() + '-' + @element.get('id') + '-'  # use tab index\r
193   \r
194 class Editor.EditorModule.DockModule.TabModule.ElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
195   \r
196 class Editor.EditorModule.DockModule.TabModule.ElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
197   \r
198   initialize: (options) ->\r
199     super(options)\r
200     @form = Locmare.Form.factory({\r
201       form_name: @element().item_name(), \r
202       item: @element(), \r
203       mounted: @mounted(), \r
204       submit: null, \r
205       operators: @dock().editor().operators,\r
206       action: '/' + @element().table_name() + '/' + Pettanr.to_s(@element().get('id'))\r
207     })\r
208   \r
209   render: () ->\r
210     this.$el.attr('id', @dom_id())\r
211     this.$el.html(@form.render().el)\r
212     this\r
213   \r
214   add_element: (element) ->\r
215     @form.add_element(element)\r
216   \r
217   mounted: () ->\r
218     true\r
219   \r
220   element: () ->\r
221     @parent.element\r
222   \r
223 class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.BoardBay\r
224   \r
225   initialize: (options) ->\r
226     super(options)\r
227     i = 0\r
228     _.each @elements(), (element) =>\r
229       tab = new Editor.EditorModule.DockModule.ScenarioBoard({\r
230         parent: this, index: i, name: element.item_name(), element: element\r
231       })\r
232       @add_tab(\r
233         tab, \r
234         new Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel({parent: tab, caption: element.item_name()}), \r
235         new Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody({parent: tab})\r
236       )\r
237       i++\r
238   \r
239   render: () ->\r
240     this.$el.html('')\r
241     this.$el.attr('id', @body.dom_id())\r
242     elements_tabs = new Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs({\r
243       tabs: @tabs\r
244     })\r
245     this.$el.append(elements_tabs.render().el)\r
246     _.each @tabs, (tab) =>\r
247       this.$el.append(tab.body.render().el)\r
248     elements_tabs.$el.tabs()\r
249     this\r
250   \r
251   elements: () ->\r
252     @root_item().scenario_elements()\r
253   \r
254   class_name: () ->\r
255     "tsort-box"\r
256   \r
257 class Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs extends Backbone.View\r
258   tagName: 'ul'\r
259   className: 'tsort'\r
260   \r
261   initialize: (options) ->\r
262     super(options)\r
263     @tabs = options.tabs\r
264   \r
265   render: () ->\r
266     this.$el.html('')\r
267     _.each @tabs, (tab) =>\r
268       this.$el.append(tab.label.render().el)\r
269     this\r
270   \r
271 class Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
272   \r
273 class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
274   \r
275   initialize: (options) ->\r
276     super(options)\r
277   \r
278 class Editor.EditorModule.DockModule.ScenarioBoard extends Editor.EditorModule.DockModule.Board\r
279   \r
280   initialize: (options) ->\r
281     super(options)\r
282     @element = options.element\r
283   \r
284 class Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
285   \r
286   with_destroy_button: () ->\r
287     false\r
288   \r
289 class Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
290   \r
291   initialize: (options) ->\r
292     super(options)\r
293     @bucket = new Editor.EditorModule.DockModule.ScenarioBucket({\r
294       parent: this\r
295     })\r
296   \r
297 class Editor.EditorModule.DockModule.PriorityBay extends Editor.EditorModule.DockModule.BoardBay\r
298   \r
299   initialize: (options) ->\r
300     super(options)\r
301     i = 0\r
302     _.each @elements(), (element) =>\r
303       tab = new Editor.EditorModule.DockModule.PriorityBoard({\r
304         parent: this, index: i, name: element.item_name(), element: element\r
305       })\r
306       @add_tab(\r
307         tab, \r
308         new Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel({parent: tab, name: element.item_name()}), \r
309         new Editor.EditorModule.DockModule.TabModule.PriorityBoardBody({parent: tab})\r
310       )\r
311       i++\r
312   \r
313   render: () ->\r
314     this.$el.html('')\r
315     this.$el.attr('id', @body.dom_id())\r
316     elements_tabs = new Editor.EditorModule.DockModule.PriorityBay.PriorityTabs({\r
317       tabs: @tabs\r
318     })\r
319     this.$el.append(elements_tabs.render().el)\r
320     _.each @tabs, (tab) =>\r
321       this.$el.append(tab.body.render().el)\r
322     elements_tabs.$el.tabs()\r
323     this\r
324   \r
325   elements: () ->\r
326     @root_item().scenario_elements()\r
327   \r
328   class_name: () ->\r
329     "zsort-box"\r
330   \r
331 class Editor.EditorModule.DockModule.PriorityBay.PriorityTabs extends Backbone.View\r
332   tagName: 'ul'\r
333   className: 'zsort'\r
334   \r
335   initialize: (options) ->\r
336     super(options)\r
337     @tabs = options.tabs\r
338   \r
339   render: () ->\r
340     this.$el.html('')\r
341     _.each @tabs, (tab) =>\r
342       this.$el.append(tab.label.render().el)\r
343     this\r
344   \r
345 class Editor.EditorModule.DockModule.TabModule.PriorityBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
346   \r
347 class Editor.EditorModule.DockModule.TabModule.PriorityBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
348   \r
349   initialize: (options) ->\r
350     super(options)\r
351   \r
352 class Editor.EditorModule.DockModule.PriorityBoard extends Editor.EditorModule.DockModule.Board\r
353   \r
354   initialize: (options) ->\r
355     super(options)\r
356     @element = options.element\r
357   \r
358   mounted: () ->\r
359     false\r
360   \r
361 class Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
362   \r
363   with_destroy_button: () ->\r
364     false\r
365   \r
366 class Editor.EditorModule.DockModule.TabModule.PriorityBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
367   \r
368   initialize: (options) ->\r
369     super(options)\r
370     @bucket = new Editor.EditorModule.DockModule.PriorityBucket({\r
371       parent: this\r
372     })\r
373     \r
374 #    form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]\r
375 #    form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted\r
376 #    bucket = Bucket.new self,form\r
377   \r
378 class Editor.EditorModule.DockModule.NewBay extends Editor.EditorModule.DockModule.BoardBay\r
379   \r
380 \r
381 class Editor.EditorModule.DockModule.TabModule.NewBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
382   \r
383 \r
384 class Editor.EditorModule.DockModule.TabModule.NewBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
385   \r
386   initialize: (options) ->\r
387     super(options)\r
388   \r
389 class Editor.EditorModule.DockModule.NewBoard extends Editor.EditorModule.DockModule.Board\r
390   \r
391 class Editor.EditorModule.DockModule.TabModule.NewBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
392   \r
393 class Editor.EditorModule.DockModule.TabModule.NewBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
394   \r
395   initialize: (options) ->\r
396     super(options)\r
397 #    form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]\r
398 #    form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted\r
399 #    bucket = Bucket.new self,form\r
400   \r