OSDN Git Service

fix: fetch fail
[pettanr/pettanr.git] / app / assets / javascripts / controllers / folders.js.coffee
index 9fbddef..807d856 100644 (file)
@@ -1,60 +1,95 @@
 class Pettanr.FoldersController extends Pettanr.AppController\r
   \r
   index: () ->\r
-    @trigger('retitle', @params)\r
+    @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   root: () ->\r
-    @trigger('retitle', @params)\r
     @set_model()\r
-    @item = new Pettanr.Folder.Root()\r
-    @item.fetch({cache: true}).done =>\r
-      @children_html()\r
+    Pettanr.Folder.Root.retrieve(null, this, {\r
+      success: (@item) => \r
+        @children_html()\r
+      fail: (response, opt) => \r
+        @trigger('fail', response, opt)\r
+      force: true\r
+    })\r
   \r
   show_html_format: (format) -> \r
   \r
-  children_html: () -> \r
-    @trigger('retitle', @params, @item.get('name'))\r
-    collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
-    collection.fetch({cache: true}).done =>\r
-      filer = new Locmare.Filer({\r
-        item_name: 'folder', \r
-        items: collection.models, \r
-        pager: null, \r
-        operators: @operators\r
-      })\r
-      @listenTo(filer, 'navigate', @navigate)\r
-      @trigger('ready', filer)\r
-  \r
   show: () ->\r
-    if @params['format'] == 'prof'\r
-      @set_show()\r
-      @item = new Pettanr.FolderWatch({id: @params['id']})  # replace refference item\r
-      @show_prof()\r
+    @set_model()\r
+    folder = new Pettanr.FolderWatch({id: @params['id']})\r
+    folder.retrieve(this, {\r
+      success: (@item) => \r
+        @render_show()\r
+      fail: (response, opt) => \r
+        @trigger('fail', response, opt)\r
+      force: true\r
+    })\r
+  \r
+  \r
+  render_show: () -> \r
+    switch @params['format']\r
+      when 'prof'\r
+        @show_prof()\r
+      when 'html'\r
+        @show_html()\r
+  \r
+  show_html: () -> \r
+    if @item.is_remote()\r
+      @trigger('other', @item.remote_url())\r
     else\r
-      @item = new Pettanr.FolderWatch({id: @params['id']})\r
-      @item.fetch({cache: true}).done () =>\r
-        if @item.is_remote()\r
-          vp = new Pettanr.ViewPicker({url: @item.remote_url(), operators: @operators})\r
-          @listenTo(vp, 'ready', @refresh)\r
-          @listenTo(vp, 'retitle', @retitle)\r
-        else\r
-          @children_html()\r
+      @children_html()\r
+  \r
+  children_html: () -> \r
+    @trigger('title', @params, @item.get('name'))\r
+    collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
+    collection.fetch({\r
+      success: (models, response, opt) =>\r
+        filer = new Locmare.Filer({\r
+          item_name: 'folder', \r
+          items: collection.models, \r
+          pager: null, \r
+        })\r
+        filer.render()\r
+        @trigger('ready', filer)\r
+        @trigger('done', @params)\r
+      error: (item, response, opt) =>\r
+        @trigger('fail', response, opt)\r
+    })\r
   \r
   count: () ->\r
   \r
   new: () ->\r
-    @trigger('retitle', @params)\r
+    @trigger('title', @params)\r
     @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\r
-    @trigger('retitle', @params)\r
+    @trigger('title', @params)\r
     @form_edit()\r
+    @trigger('done', @params)\r
   \r
   # for remote folder\r
   refresh: (view) ->\r
     @trigger('ready', view)\r
   \r
-  retitle: (params, str = null) ->\r
-    @trigger('retitle', @params, str = null)\r
+  title: (params, str) ->\r
+    @trigger('title', params, str)\r
+  \r
+  done: (params) ->\r
+    @trigger('done', params)\r
+  \r
+  deny: (params, form, safe_url) ->\r
+    @trigger('deny', params, form, safe_url)\r
+  \r
+  @is_deny_action_on_picker: (params) ->\r
+    switch params['action']\r
+      when 'new'\r
+        true\r
+      when 'edit'\r
+        true\r
+      else\r
+        false\r
   \r