X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Feditor%2Fpanel_editor.js.coffee;h=0148b919dbbcf949d2bc9091f543dc418474668f;hp=0e71d368568aaa234c8e11816e48afec68168bb9;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=6a209591533ecec4cfb48b5131ac530238eb832f diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index 0e71d368..0148b919 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -1,50 +1,57 @@ -class Editor.PanelEditor extends Backbone.View +class Editor.PanelEditor extends Pettanr.View tagName: 'div' className: 'panel-editor' initialize: (options) -> @panel = options.root_item - @operators = options.operators + @item = @panel + @dialogs = {} @body = new Pettanr.Views.Panel.Body.Edit({ panel: @root_item(), - operators: @operators, spot: null }) @dock = new Editor.PanelEditor.Dock({parent: this}) - @credits = new Pettanr.Views.Panel.Show.Credits({panel: @root_item()}) - _.each @panel.zorderd_elements(), (element) => - element.fetch({cache: true}).done => - @add_element(element) - @dock.add_new_tab() + @credits = new Pettanr.View.Credits(this, {icon: true}) + @body.on('panel:resize', @panel_resize) + @listenTo(@dock, 'http_post', @http_post) + @listenTo(@dock, 'save:success', @post_success) + @listenTo(@dock, 'save:fail', @post_fail) + @listenTo(@dock, 'add:element', @add_element) + @listenTo(@dock, 'add:credit', @add_credit) + @listenTo(@dock, 'destroy', @destroy) + @listenTo(@dock, 'dialog:open', @open_dialog) + @listenTo(@dock, 'dialog:close', @close_dialog) add_element: (element) -> - console.log(element) - panel_element_view = @body.add_element(element) - dock_element_view = @dock.add_element(element) - @dig(element, panel_element_view, dock_element_view) - #@credits.add_element(element) - - dig: (element, panel_element_view, dock_element_view) -> - console.log(element.elements_items()) - _.each element.elements_items(), (child_element) => - console.log(child_element) - child_element.fetch({cache: true}).done => - child_panel_element_view = panel_element_view.add_element(child_element) - dock_element_view.add_element(child_element) - @dig(child_element, child_panel_element_view, dock_element_view) + @body.add_element(element) + + add_credit: (element) -> + r = {} + r[element.get('picture_id')] = null + @credits.push(r) + + open_dialog: (dialog) -> + @dialogs[dialog.cid] = dialog + + close_dialog: (dialog) -> + delete @dialogs[dialog.cid] + dialog.remove() + + destroy: (element, index) -> + @remove_element(element) remove_element: (element) -> - + @body.remove_element(element) render: () -> this.$el.html('') this.$el.append(@body.render().el) this.$el.append(@dock.render().el) this.$el.append(@credits.render().el) - rb = new Tag.RowBreak() - this.$el.append(rb.render().el) - this.$el.tabs() + @append_rb() + @dock.init_tabs() + @dock.$el.tabs() this panel_resize: () -> @@ -54,6 +61,24 @@ class Editor.PanelEditor extends Backbone.View #$(trace + 'width').val(w) #$(trace + 'height').val(h) + quit: () -> + @dock.quit() + _.each @dialogs, (dialog) => + @close_dialog(dialog) + + http_post: (url, dock) -> + @trigger('http_post', url, this) # send editor + + save: () -> + @dock.save() + false + + post_success: (model, response) -> + @trigger('success', model, response) + + post_fail: (model, response) -> + @trigger('fail', response) + root_item: () -> @panel