X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fcontrollers%2Fpanels.js.coffee;h=685bf0715d4b6b4fb9a6206dc1b79b6810008883;hp=9bb5d2c1f37310919e625e3d37fa04a41987ac2d;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=942a1397a3b54b927a27bd34108a8c8c4390cd3b diff --git a/app/assets/javascripts/controllers/panels.js.coffee b/app/assets/javascripts/controllers/panels.js.coffee index 9bb5d2c1..685bf071 100644 --- a/app/assets/javascripts/controllers/panels.js.coffee +++ b/app/assets/javascripts/controllers/panels.js.coffee @@ -1,67 +1,121 @@ class Pettanr.PanelsController extends Pettanr.AppController index: () -> - @redraw_title(@params) + @trigger('title', @params) @filer_list() + @trigger('done', @params) by_author: () -> - @redraw_title(@params) + @trigger('title', @params) @filer_list() + @trigger('done', @params) by_scroll: () -> - @redraw_title(@params) + @trigger('title', @params) @filer_list() + @trigger('done', @params) by_sheet: () -> - @redraw_title(@params) + @trigger('title', @params) @filer_list() + @trigger('done', @params) by_speech_balloon_template: () -> - @redraw_title(@params) + @trigger('title', @params) @filer_list() - - show_html: () -> - _this = this - @item = new Pettanr.Panel({id: @item.get('id')}, {with_elements: true}) # retake panel for 'with_elements' mode - @item.fetch({cache: false}).done -> - _this.redraw_title(_this.params, _this.item.get('caption')) - view = new Pettanr.Views.Panel.Show({ - el: "#pettanr", - panel: _this.item, - operators: _this.operators, - spot: null - }) - view.render() - false + @trigger('done', @params) show: () -> - @set_show() + @set_show(@render_show) + + render_show: (@item) -> switch @params['format'] when 'prof' @show_prof() - else + when 'html' @show_html() + show_html: () -> + @item = @item.play() # retake panel for 'with_elements' mode + @item.fetch({ + cache: false + success: (@parent_item, response, opt) => + @item.attributes = @item.decoded_attributes() + @trigger('title', @params, @item.get('caption')) + show = new Pettanr.Views.Panel.Show(@item, { + spot: null + }) + show.render() + @trigger('ready', show) + @trigger('done', @params) + error: (item, response, opt) => + @trigger('fail', response, opt) + }) + count: () -> new: () -> - @redraw_title(@params) + @trigger('title', @params) @set_new() - editor = new Editor.PanelEditor({root_item: @item, operators: @operators}) - $("#pettanr").html(editor.render().el) + @item = @item.edit({ + context: this, + success: (@item) -> + @item.boosts 'post' + @render_form() + fail: (response, opt) -> + @trigger('fail', response, opt) + }) + @trigger('done', @params) edit: () -> - @redraw_title(@params) - _this = this - @set_model() - @item = new Pettanr.Panel({id: @params['id']}, {with_elements: true}) - @item.fetch({cache: false}).done -> - editor = new Editor.PanelEditor({root_item: _this.item, operators: _this.operators}) - $("#pettanr").html(editor.render().el) + @trigger('title', @params) + @set_edit() + @trigger('done', @params) + + render_edit: (item) -> + item.edit({ + context: this, + success: (@item) -> + @item.boosts 'post' + @render_form() + fail: (response, opt) -> + @trigger('fail', response, opt) + }) + + render_form: () -> + @form = new Editor.PanelEditor({root_item: @item}) + @form.render() + @trigger('lock', @params, @form) + @trigger('ready', @form) create: () -> + # @form is editor + @form.panel.overwrite({}) + @listenTo(@form, 'success', @post_success) + @listenTo(@form, 'fail', @post_fail) + @form.save() update: () -> + # @form is editor + @form.panel.overwrite({}) + @listenTo(@form, 'success', @post_success) + @listenTo(@form, 'fail', @post_fail) + @form.save() destroy: () -> - + @set_show(@render_destroy) + + render_destroy: (@item) -> + @listenTo(@item, 'destroy:success', @destroy_success) + @listenTo(@item, 'destroy:fail', @destroy_fail) + @item.destroy() + + @is_deny_action_on_picker: (params) -> + switch params['action'] + when 'new' + true + when 'edit' + true + else + false +