OSDN Git Service

add: success inspire
[pettanr/pettanr.git] / app / assets / javascripts / controllers / folders.js.coffee
index 394af8a..a47d6dc 100644 (file)
@@ -1,39 +1,88 @@
 class Pettanr.FoldersController extends Pettanr.AppController\r
   \r
   index: () ->\r
+    @trigger('title', @params)\r
     @filer_list()\r
+    @trigger('done', @params)\r
   \r
   root: () ->\r
+    @set_model()\r
+    retriever = new Pettanr.Cache.Retriever(Pettanr.Folder.Root)\r
+    @listenTo(retriever, 'retrieve', @retrieve_root)\r
+    retriever.retrieve(true)\r
+  \r
+  retrieve_root: (item) -> \r
+    @item = item\r
+    @children_html()\r
   \r
   show_html_format: (format) -> \r
   \r
   show: () ->\r
-    console.log(@params)\r
-    id = @params['id']\r
-    item = new Pettanr.FolderWatch({id: id})\r
-    _this = this\r
-    item.fetch({}).done () ->\r
-      if item.is_remote()\r
-        c = item.get('controller_name')\r
-        a = if Pettanr.is_blank(item.get('action_name'))\r
-          'index'\r
-        else\r
-          item.get('action_name')\r
-        window.router['c_i'](c, a, '') # call action event in router for redirect\r
-      else\r
-        list_result = new Pettanr.Folder.Children({id: item.id})\r
-        f = new Locmare.Filer({\r
-          item_name: 'folder', \r
-          items: [], \r
-          list_result: list_result, \r
-          pager_type: 'default', \r
-          operators: window.operators\r
-        })\r
-        $("#pettanr").html(f.render().el)\r
+    @set_model()\r
+    retriever = new Pettanr.Cache.Retriever(Pettanr.FolderWatch, @params['id'])\r
+    @listenTo(retriever, 'retrieve', @retrieve_show)\r
+    retriever.retrieve(true)\r
+  \r
+  retrieve_show: (@item) -> \r
+    @render_show()\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
+      @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({cache: true}).done =>\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
   \r
   count: () ->\r
   \r
   new: () ->\r
+    @trigger('title', @params)\r
+    @form_new()\r
+    @trigger('done', @params)\r
   \r
   edit: () ->\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
+  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