OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[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       @trigger('other', @item.remote_url())\r
52     else\r
53       @children_html()\r
54   \r
55   children_html: () -> \r
56     @trigger('title', @params, @item.get('name'))\r
57     collection = new Pettanr.Folder.Children({id: @item.get('id')})\r
58     collection.fetch({cache: true}).done =>\r
59       filer = new Locmare.Filer({\r
60         item_name: 'folder', \r
61         items: collection.models, \r
62         pager: null, \r
63         operators: @operators\r
64       })\r
65       filer.render()\r
66       @trigger('ready', filer)\r
67       @trigger('done', @params)\r
68   \r
69   count: () ->\r
70   \r
71   new: () ->\r
72     @trigger('title', @params)\r
73     @form_new()\r
74     @trigger('done', @params)\r
75   \r
76   edit: () ->\r
77     @trigger('title', @params)\r
78     @form_edit()\r
79     @trigger('done', @params)\r
80   \r
81   # for remote folder\r
82   refresh: (view) ->\r
83     @trigger('ready', view)\r
84   \r
85   title: (params, str) ->\r
86     @trigger('title', params, str)\r
87   \r
88   done: (params) ->\r
89     @trigger('done', params)\r
90   \r
91   deny: (params, form, safe_url) ->\r
92     @trigger('deny', params, form, safe_url)\r
93   \r
94   @is_deny_action_on_picker: (params) ->\r
95     switch params['action']\r
96       when 'new'\r
97         true\r
98       when 'edit'\r
99         true\r
100       else\r
101         false\r
102   \r