OSDN Git Service

fix router and render
[pettanr/pettanr.git] / app / assets / javascripts / controllers / folders.js.coffee
index 6492fae..5edbea4 100644 (file)
@@ -1,46 +1,70 @@
 class Pettanr.FoldersController extends Pettanr.AppController\r
   \r
   index: () ->\r
+    @trigger('retitle', @params)\r
     @filer_list()\r
   \r
   root: () ->\r
+    @trigger('retitle', @params)\r
     @set_model()\r
     @item = new Pettanr.Folder.Root()\r
-    _this = this\r
-    @item.fetch({}).done () ->\r
-      _this.children_html()\r
+    @item.fetch({cache: true}).done =>\r
+      @children_html()\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
-    f = new Locmare.Filer({\r
-      item_name: 'folder', \r
-      collection: collection, \r
-      pager: null, \r
-      operators: window.operators\r
-    })\r
-    $("#pettanr").html(f.render().el)\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
-    console.log(@params)\r
-    id = @params['id']\r
-    @item = new Pettanr.FolderWatch({id: id})\r
-    _this = this\r
-    @item.fetch({}).done () ->\r
-      if _this.item.is_remote()\r
-        c = _this.item.get('controller_name')\r
-        a = if Pettanr.is_blank(_this.item.get('action_name'))\r
-          'index'\r
+    if @params['format'] == 'prof'\r
+      @set_show()\r
+      @item = new Pettanr.FolderWatch({id: @params['id']})  # replace refference item\r
+      @show_prof()\r
+    else\r
+      @item = new Pettanr.FolderWatch({id: @params['id']})\r
+      @item.fetch({cache: true}).done () =>\r
+        if @item.is_remote()\r
+          # redirect to remote item list\r
+          params = {}\r
+          params['controller'] = @item.get('controller_name')\r
+          params['action'] = if Pettanr.is_blank(@item.get('action_name'))\r
+            'index'\r
+          else\r
+            @item.get('action_name')\r
+          # self fire\r
+          c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller']\r
+          controller = new c(@operators)\r
+          controller.params = params\r
+          @listenTo(controller, 'ready', @refresh)\r
+          @listenTo(controller, 'retitle', @retitle)\r
+          controller[params['action']]()\r
         else\r
-          _this.item.get('action_name')\r
-        window.router['c_i'](c, a, '') # call action event in router for redirect\r
-      else\r
-        _this.children_html()\r
+          @children_html()\r
+  \r
+  refresh: (view) ->\r
+    @trigger('ready', view)\r
+  \r
+  retitle: (params, str = null) ->\r
+    @trigger('retitle', @params, str = null)\r
   \r
   count: () ->\r
   \r
   new: () ->\r
+    @trigger('retitle', @params)\r
+    @form_new()\r
   \r
   edit: () ->\r
+    @trigger('retitle', @params)\r
+    @form_edit()\r
   \r