OSDN Git Service

aa49de5050aa46223d38c4b99ae823efd0a6de2a
[pettanr/pettanr.git] / app / assets / javascripts / controllers / folders.js.coffee
1 class Pettanr.FoldersController 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   root: () ->\r
9     @set_model()\r
10     @empty_item = new Pettanr.Folder.Root()\r
11     @item = Pettanr.cache.restore(@empty_item)\r
12     if @item\r
13       # got cached item\r
14         @children_html()\r
15     else\r
16       # built empty item\r
17       @item = @empty_item\r
18       Pettanr.cache.store(@item)\r
19       @item.fetch({}).done =>\r
20         @children_html()\r
21   \r
22   show_html_format: (format) -> \r
23   \r
24   # override app controller's set_show\r
25   set_show: (render_func) ->\r
26     @set_model()\r
27     @empty_item = new Pettanr.FolderWatch({id: @params['id']})\r
28     @item = Pettanr.cache.restore(@empty_item)\r
29     if @item\r
30       # got cached item\r
31       render_func.call(this)\r
32     else\r
33       # built empty item\r
34       @item = @empty_item\r
35       Pettanr.cache.store(@item)\r
36       @item.fetch().done =>\r
37         render_func.call(this)\r
38   \r
39   show: () ->\r
40     @set_show(@render_show)\r
41   \r
42   render_show: () -> \r
43     switch @params['format']\r
44       when 'prof'\r
45         @show_prof()\r
46       when 'html'\r
47         @show_html()\r
48   \r
49   show_html: () -> \r
50     if @item.is_remote()\r
51       proxy = new Pettanr.Proxy({operators: @operators})\r
52       @listenTo(proxy, 'ready', @refresh)\r
53       @listenTo(proxy, 'title', @title)\r
54       @listenTo(proxy, 'done', @done)\r
55       proxy.http_get(@item.remote_url())\r
56     else\r
57       @children_html()\r
58   \r
59   children_html: () -> \r
60     @trigger('title', @params, @item.get('name'))\r
61     collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
62     collection.fetch({cache: true}).done =>\r
63       filer = new Locmare.Filer({\r
64         item_name: 'folder', \r
65         items: collection.models, \r
66         pager: null, \r
67         operators: @operators\r
68       })\r
69       filer.render()\r
70       @trigger('ready', filer)\r
71       @trigger('done', @params)\r
72   \r
73   count: () ->\r
74   \r
75   new: () ->\r
76     @trigger('title', @params)\r
77     @form_new()\r
78     @trigger('done', @params)\r
79   \r
80   edit: () ->\r
81     @trigger('title', @params)\r
82     @form_edit()\r
83     @trigger('done', @params)\r
84   \r
85   # for remote folder\r
86   refresh: (view) ->\r
87     @trigger('ready', view)\r
88   \r
89   title: (params, str) ->\r
90     @trigger('title', params, str)\r
91   \r
92   done: (params) ->\r
93     @trigger('done', params)\r
94   \r