OSDN Git Service

fix editor lock
[pettanr/pettanr.git] / app / assets / javascripts / controllers / panels.js.coffee
1 class Pettanr.PanelsController extends Pettanr.AppController\r
2   \r
3   index: () ->\r
4     @trigger('title', @params)\r
5     @filer_list()\r
6     @trigger('done', @params)\r
7   \r
8   by_author: () ->\r
9     @trigger('title', @params)\r
10     @filer_list()\r
11     @trigger('done', @params)\r
12   \r
13   by_scroll: () ->\r
14     @trigger('title', @params)\r
15     @filer_list()\r
16     @trigger('done', @params)\r
17   \r
18   by_sheet: () ->\r
19     @trigger('title', @params)\r
20     @filer_list()\r
21     @trigger('done', @params)\r
22   \r
23   by_speech_balloon_template: () ->\r
24     @trigger('title', @params)\r
25     @filer_list()\r
26     @trigger('done', @params)\r
27   \r
28   show_html: () ->\r
29     @item = new Pettanr.Panel.WithElements({id: @item.get('id')}) # retake panel for 'with_elements' mode\r
30     @item.fetch({cache: false}).done =>\r
31       @trigger('title', @params, @item.get('caption'))\r
32       show = new Pettanr.Views.Panel.Show({\r
33         panel: @item,\r
34         operators: @operators,\r
35         spot: null\r
36       })\r
37       show.render()\r
38       @trigger('ready', show)\r
39       @trigger('done', @params)\r
40       false\r
41   \r
42   show: () ->\r
43     @set_show()\r
44     switch @params['format']\r
45       when 'prof'\r
46         @show_prof()\r
47       else\r
48         @show_html()\r
49   \r
50   count: () ->\r
51   \r
52   new: () ->\r
53     if Pettanr.History.lock\r
54       @trigger('lock', @params)\r
55     else\r
56       @trigger('title', @params)\r
57       @set_new()\r
58       @editor(@item.new_url())\r
59       @trigger('done', @params)\r
60   \r
61   edit: () ->\r
62     if Pettanr.History.lock\r
63       @trigger('lock', @params)\r
64     else\r
65       @trigger('title', @params)\r
66       @set_model()\r
67       panel = new Pettanr.Panel({id: @params['id']})\r
68       @item = panel.with_elements()\r
69       @item.fetch({cache: false}).done =>\r
70         @editor(@item.edit_url())\r
71         @trigger('done', @params)\r
72   \r
73   editor: () ->\r
74     editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
75     editor.render()\r
76     Pettanr.History.lock = {url: @item.new_url(), form: editor}\r
77     @trigger('ready', editor)\r
78   \r
79   create: () ->\r
80     # @form is editor\r
81     @form.panel.overwrite({operators: @operators})\r
82     @listenTo(@form, 'success', @post_success)\r
83     @listenTo(@form, 'fail', @post_fail)\r
84     @form.save()\r
85   \r
86   update: () ->\r
87     # @form is editor\r
88     @form.panel.overwrite({operators: @operators})\r
89     @listenTo(@form, 'success', @post_success)\r
90     @listenTo(@form, 'fail', @post_fail)\r
91     @form.save()\r
92   \r
93   destroy: () ->\r
94     @set_show()\r
95     @item.fetch({cache: true}).done =>\r
96       @listenTo(@item, 'destroy:success', @destroy_success)\r
97       @listenTo(@item, 'destroy:fail', @destroy_fail)\r
98       @item.destroy()\r
99   \r