X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fcontrollers%2Ffolders.js.coffee;h=5edbea4e806df6964f648045102327733b2e5a3e;hb=212ea3898c23ac709a3548f92f444c5a77ae4ce2;hp=be6e8a6fb7c3f988b356c2410c4378b087123554;hpb=b404a6f66817a05b366a452fdf5eda4f9ac9c50f;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/controllers/folders.js.coffee b/app/assets/javascripts/controllers/folders.js.coffee index be6e8a6f..5edbea4e 100644 --- a/app/assets/javascripts/controllers/folders.js.coffee +++ b/app/assets/javascripts/controllers/folders.js.coffee @@ -1,33 +1,70 @@ class Pettanr.FoldersController extends Pettanr.AppController - index: (params) -> - list_result = new Pettanr.Folder.Collection({}) - new Pettanr.FilerRender('folder', list_result, 'default', window.operators) + index: () -> + @trigger('retitle', @params) + @filer_list() - root: (params) -> + root: () -> + @trigger('retitle', @params) + @set_model() + @item = new Pettanr.Folder.Root() + @item.fetch({cache: true}).done => + @children_html() show_html_format: (format) -> - show: (params) -> - console.log(params) - id = params['id'] - item = new Pettanr.FolderWatch({id: id}) - _this = this - item.fetch({}).done () -> - if item.is_remote() - c = item.get('controller_name') - a = if Pettanr.is_blank(item.get('action_name')) - 'index' + children_html: () -> + @trigger('retitle', @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 + }) + @listenTo(filer, 'navigate', @navigate) + @trigger('ready', filer) + + show: () -> + if @params['format'] == 'prof' + @set_show() + @item = new Pettanr.FolderWatch({id: @params['id']}) # replace refference item + @show_prof() + else + @item = new Pettanr.FolderWatch({id: @params['id']}) + @item.fetch({cache: true}).done () => + if @item.is_remote() + # redirect to remote item list + params = {} + params['controller'] = @item.get('controller_name') + params['action'] = if Pettanr.is_blank(@item.get('action_name')) + 'index' + else + @item.get('action_name') + # self fire + c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller'] + controller = new c(@operators) + controller.params = params + @listenTo(controller, 'ready', @refresh) + @listenTo(controller, 'retitle', @retitle) + controller[params['action']]() else - item.get('action_name') - window.router['c_i'](c, a, '') # call action event in router for redirect - else - list_result = new Pettanr.Folder.Children({id: item.id}) - new Pettanr.FilerRender('folder', list_result, 'default', window.operators) + @children_html() + + refresh: (view) -> + @trigger('ready', view) + + retitle: (params, str = null) -> + @trigger('retitle', @params, str = null) - count: (params) -> + count: () -> - new: (params) -> + new: () -> + @trigger('retitle', @params) + @form_new() - edit: (params) -> + edit: () -> + @trigger('retitle', @params) + @form_edit()