index: () ->\r
@trigger('title', @params)\r
@filer_list()\r
+ @trigger('done', @params)\r
\r
root: () ->\r
@set_model()\r
- @item = new Pettanr.Folder.Root()\r
- @item.fetch({cache: true}).done =>\r
- @children_html()\r
+ @empty_item = new Pettanr.Folder.Root()\r
+ @item = Pettanr.cache.restore(@empty_item)\r
+ if @item\r
+ # got cached item\r
+ @children_html()\r
+ else\r
+ # built empty item\r
+ @item = @empty_item\r
+ Pettanr.cache.store(@item)\r
+ @item.fetch({}).done =>\r
+ @children_html()\r
\r
show_html_format: (format) -> \r
\r
+ # override app controller's set_show\r
+ set_show: (render_func) ->\r
+ @set_model()\r
+ @empty_item = new Pettanr.FolderWatch({id: @params['id']})\r
+ @item = Pettanr.cache.restore(@empty_item)\r
+ if @item\r
+ # got cached item\r
+ render_func.call(this)\r
+ else\r
+ # built empty item\r
+ @item = @empty_item\r
+ Pettanr.cache.store(@item)\r
+ @item.fetch().done =>\r
+ render_func.call(this)\r
+ \r
+ show: () ->\r
+ @set_show(@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
pager: null, \r
operators: @operators\r
})\r
+ filer.render()\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
- else\r
- @item = new Pettanr.FolderWatch({id: @params['id']})\r
- @item.fetch({cache: true}).done () =>\r
- if @item.is_remote()\r
- proxy = new Pettanr.Proxy({operators: @operators})\r
- @listenTo(proxy, 'ready', @refresh)\r
- @listenTo(proxy, 'title', @title)\r
- @listenTo(proxy, 'done', @done)\r
- proxy.http_get(@item.remote_url())\r
- else\r
- @children_html()\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 = null) ->\r
- @trigger('title', @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
- done: (url) ->\r
- @trigger('done', url)\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