class Pettanr.FoldersController extends Pettanr.AppController index: () -> @trigger('title', @params) @filer_list() @trigger('done', @params) root: () -> @set_model() @empty_item = new Pettanr.Folder.Root() @item = Pettanr.cache.restore(@empty_item) if @item # got cached item @children_html() else # built empty item @item = @empty_item Pettanr.cache.store(@item) @item.fetch({}).done => @children_html() show_html_format: (format) -> # override app controller's set_show set_show: (render_func) -> @set_model() @empty_item = new Pettanr.FolderWatch({id: @params['id']}) @item = Pettanr.cache.restore(@empty_item) if @item # got cached item render_func.call(this) else # built empty item @item = @empty_item Pettanr.cache.store(@item) @item.fetch().done => render_func.call(this) show: () -> @set_show(@render_show) render_show: () -> switch @params['format'] when 'prof' @show_prof() when 'html' @show_html() show_html: () -> if @item.is_remote() proxy = new Pettanr.Proxy({operators: @operators}) @listenTo(proxy, 'ready', @refresh) @listenTo(proxy, 'title', @title) @listenTo(proxy, 'done', @done) proxy.http_get(@item.remote_url()) else @children_html() children_html: () -> @trigger('title', @params, @item.get('name')) collection = new Pettanr.Folder.Children({id: @item.get('id')}) collection.fetch({cache: true}).done => filer = new Locmare.Filer({ item_name: 'folder', items: collection.models, pager: null, operators: @operators }) filer.render() @trigger('ready', filer) @trigger('done', @params) count: () -> new: () -> @trigger('title', @params) @form_new() @trigger('done', @params) edit: () -> @trigger('title', @params) @form_edit() @trigger('done', @params) # for remote folder refresh: (view) -> @trigger('ready', view) title: (params, str) -> @trigger('title', params, str) done: (params) -> @trigger('done', params)