class Editor.PanelEditor extends Pettanr.View tagName: 'div' className: 'panel-editor' initialize: (options) -> @panel = options.root_item @item = @panel @dialogs = {} @body = new Pettanr.Views.Panel.Body.Edit({ panel: @root_item(), spot: null }) @dock = new Editor.PanelEditor.Dock({parent: this}) @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) -> @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) @append_rb() @dock.init_tabs() @dock.$el.tabs() this panel_resize: () -> my = @body.$el w = parseInt(my.width()) h = parseInt(my.height()) #$(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 dom_id: () -> 'editor-' + Pettanr.to_s(@root_item().get('id')) dom_class: () -> 'editor'