X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fcontrollers%2Ffolders.js.coffee;h=807d8561c4def22de3ce86412d3e75772840e314;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hp=9fbddef458128b60103f06eab12e35722c3527e9;hpb=34302e1ed29b8f70d9849bb059bb37383ec38e24;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/controllers/folders.js.coffee b/app/assets/javascripts/controllers/folders.js.coffee index 9fbddef4..807d8561 100644 --- a/app/assets/javascripts/controllers/folders.js.coffee +++ b/app/assets/javascripts/controllers/folders.js.coffee @@ -1,60 +1,95 @@ class Pettanr.FoldersController extends Pettanr.AppController index: () -> - @trigger('retitle', @params) + @trigger('title', @params) @filer_list() + @trigger('done', @params) root: () -> - @trigger('retitle', @params) @set_model() - @item = new Pettanr.Folder.Root() - @item.fetch({cache: true}).done => - @children_html() + Pettanr.Folder.Root.retrieve(null, this, { + success: (@item) => + @children_html() + fail: (response, opt) => + @trigger('fail', response, opt) + force: true + }) show_html_format: (format) -> - 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() + @set_model() + folder = new Pettanr.FolderWatch({id: @params['id']}) + folder.retrieve(this, { + success: (@item) => + @render_show() + fail: (response, opt) => + @trigger('fail', response, opt) + force: true + }) + + + render_show: () -> + switch @params['format'] + when 'prof' + @show_prof() + when 'html' + @show_html() + + show_html: () -> + if @item.is_remote() + @trigger('other', @item.remote_url()) else - @item = new Pettanr.FolderWatch({id: @params['id']}) - @item.fetch({cache: true}).done () => - if @item.is_remote() - vp = new Pettanr.ViewPicker({url: @item.remote_url(), operators: @operators}) - @listenTo(vp, 'ready', @refresh) - @listenTo(vp, 'retitle', @retitle) - else - @children_html() + @children_html() + + children_html: () -> + @trigger('title', @params, @item.get('name')) + collection = new Pettanr.Folder.Children({id: @item.get('id')}) + collection.fetch({ + success: (models, response, opt) => + filer = new Locmare.Filer({ + item_name: 'folder', + items: collection.models, + pager: null, + }) + filer.render() + @trigger('ready', filer) + @trigger('done', @params) + error: (item, response, opt) => + @trigger('fail', response, opt) + }) count: () -> new: () -> - @trigger('retitle', @params) + @trigger('title', @params) @form_new() + @trigger('done', @params) edit: () -> - @trigger('retitle', @params) + @trigger('title', @params) @form_edit() + @trigger('done', @params) # for remote folder refresh: (view) -> @trigger('ready', view) - retitle: (params, str = null) -> - @trigger('retitle', @params, str = null) + title: (params, str) -> + @trigger('title', params, str) + + done: (params) -> + @trigger('done', params) + + deny: (params, form, safe_url) -> + @trigger('deny', params, form, safe_url) + + @is_deny_action_on_picker: (params) -> + switch params['action'] + when 'new' + true + when 'edit' + true + else + false