OSDN Git Service

fix gate
[pettanr/pettanr.git] / app / assets / javascripts / controllers / panels.js.coffee
index 60caf94..2ea987a 100644 (file)
 class Pettanr.PanelsController extends Pettanr.AppController\r
   \r
   index: () ->\r
+    @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_author: () ->\r
+    @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_scroll: () ->\r
+    @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_sheet: () ->\r
+    @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   by_speech_balloon_template: () ->\r
+    @trigger('title', @params)\r
     @filer_list()\r
-  \r
-  show_html: () ->\r
-    _this = this\r
-    @item = new Pettanr.Panel({id: @item.get('id')}, {with_elements: true}) # retake panel for 'with_elements' mode\r
-    @item.fetch().done ->\r
-      view = new Pettanr.Views.Panel.Show({\r
-        el: "#pettanr",\r
-        panel: _this.item,\r
-        operators: _this.operators,\r
-        spot: null\r
-      })\r
-      view.render()\r
-      false\r
+    @trigger('done', @params)\r
   \r
   show: () ->\r
-    @set_show()\r
+    @set_show(@render_show)\r
+  \r
+  render_show: () -> \r
     switch @params['format']\r
       when 'prof'\r
         @show_prof()\r
-      else\r
+      when 'html'\r
         @show_html()\r
   \r
+  show_html: () -> \r
+    @item = @item.with_elements() # retake panel for 'with_elements' mode\r
+    @item.fetch({cache: true}).done =>\r
+      @item.replace_elements()\r
+      @trigger('title', @params, @item.get('caption'))\r
+      show = new Pettanr.Views.Panel.Show({\r
+        panel: @item,\r
+        operators: @operators,\r
+        spot: null\r
+      })\r
+      show.render()\r
+      @trigger('ready', show)\r
+      @trigger('done', @params)\r
+  \r
   count: () ->\r
   \r
   new: () ->\r
-    @form_new()\r
+    if @gate and @gate.is_lock()\r
+      @trigger('lock', @params)\r
+    else\r
+      @trigger('title', @params)\r
+      @set_new()\r
+      @editor(@item.new_url())\r
+      @trigger('done', @params)\r
   \r
   edit: () ->\r
-    @form_edit()\r
+    if @gate and @gate.is_lock()\r
+      @trigger('lock', @params)\r
+    else\r
+      @trigger('title', @params)\r
+      @set_model()\r
+      panel = new Pettanr.Panel({id: @params['id']})\r
+      @item = panel.with_elements()\r
+      @item.fetch({cache: false}).done =>\r
+        @item.replace_elements()\r
+        @editor(@item.edit_url())\r
+        @trigger('done', @params)\r
+  \r
+  editor: () ->\r
+    editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
+    editor.render()\r
+    @trigger('lock', @params, editor)\r
+    @trigger('ready', editor)\r
   \r
   create: () ->\r
+    # @form is editor\r
+    @form.panel.overwrite({operators: @operators})\r
+    @listenTo(@form, 'success', @post_success)\r
+    @listenTo(@form, 'fail', @post_fail)\r
+    @form.save()\r
   \r
   update: () ->\r
+    # @form is editor\r
+    @form.panel.overwrite({operators: @operators})\r
+    @listenTo(@form, 'success', @post_success)\r
+    @listenTo(@form, 'fail', @post_fail)\r
+    @form.save()\r
   \r
   destroy: () ->\r
-    \r
+    @set_show(@render_destroy)\r
+  \r
+  render_destroy: () ->\r
+    @listenTo(@item, 'destroy:success', @destroy_success)\r
+    @listenTo(@item, 'destroy:fail', @destroy_fail)\r
+    @item.destroy()\r
+  \r