1 class Editor.EditorModule.DockModule.NewElementBoard extends Editor.EditorModule.DockModule.Board
\r
3 initialize: (options) ->
\r
5 @panel = @parent.dock().editor().panel
\r
7 class Editor.EditorModule.DockModule.TabModule.NewElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel
\r
9 initialize: (options) ->
\r
14 this.$el.attr('data-z', 0)
\r
15 this.$el.removeClass('ui-corner-top')
\r
16 this.$el.addClass('ui-corner-left')
\r
20 icon = new Pettanr.Image.SymbolImg({attr: {src: '/images/new.gif'}})
\r
21 linked_elements_tab = new Tag.A({
\r
22 attr: {href: '#' + @board().body.dom_id() },
\r
23 content: icon.render().el
\r
25 this.$el.append(linked_elements_tab.render().el)
\r
28 this.$el.attr('id', @dom_id())
\r
31 parseInt(this.$el.attr('data-z'))
\r
33 class Editor.EditorModule.DockModule.TabModule.NewElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody
\r
34 className: 'new-element-board-body'
\r
36 initialize: (options) ->
\r
40 this.$el.attr('id', @dom_id())
\r
41 @launchers = new Editor.EditorModule.DockModule.NewElementLaunchers({
\r
42 parent: this, element_models: @element_models()
\r
44 @listenTo(@launchers, 'pick', @pick)
\r
45 @listenTo(@launchers, 'dialog:open', @open_dialog)
\r
46 @listenTo(@launchers, 'dialog:close', @close_dialog)
\r
47 this.$el.append(@launchers.render().el)
\r
53 element_models: () ->
\r
54 @panel().my_class().child_models()
\r
57 @trigger('pick', new_item)
\r
59 open_dialog: (dialog) ->
\r
60 @trigger('dialog:open', dialog)
\r
62 close_dialog: (dialog) ->
\r
63 @trigger('dialog:close', dialog)
\r
65 class Editor.EditorModule.DockModule.NewElementLaunchers extends Backbone.View
\r
67 className: 'new-element-buttons'
\r
69 initialize: (options) ->
\r
71 @parent = options.parent
\r
72 @element_models = options.element_models
\r
75 _.each @element_models, (model) =>
\r
76 launcher = new Pettanr.Views[model.singular()].NewElementLauncher({
\r
77 parent: this, model: model
\r
79 @listenTo(launcher, 'pick', @pick)
\r
80 @listenTo(launcher, 'dialog:open', @open_dialog)
\r
81 @listenTo(launcher, 'dialog:close', @close_dialog)
\r
82 this.$el.append(launcher.render().el)
\r
86 @trigger('pick', new_item)
\r
88 open_dialog: (dialog) ->
\r
89 @trigger('dialog:open', dialog)
\r
91 close_dialog: (dialog) ->
\r
92 @trigger('dialog:close', dialog)
\r
97 class Editor.EditorModule.DockModule.NewElementLauncher extends Backbone.View
\r
100 initialize: (options) ->
\r
102 @parent = options.parent
\r
103 @model = options.model
\r
107 header = new Editor.EditorModule.DockModule.NewElementLauncherHeader({model: @model})
\r
108 this.$el.append(header.render().el)
\r
111 get_action: (params) ->
\r
112 controller = Manifest.manifest().controllers[params['controller']]
\r
113 controller.actions[params['action']]
\r
116 _.each @links_conf, (conf, name) =>
\r
117 @add_link(name, conf.caption, @get_action(conf.params).url(conf.params))
\r
119 add_link: (name, caption, url) ->
\r
121 attr: {href: '/' + url},
\r
124 @listenTo(link, 'click', this['click_' + name])
\r
125 this.$el.append(link.render().el)
\r
127 create_dialog: () ->
\r
128 dialog = new Editor.PanelEditor.Dialog({
\r
131 this.$el.append(dialog.render().el)
\r
133 dialog.$el.dialog({
\r
137 close: (ui, event) ->
\r
138 _this.close_dialog(dialog)
\r
142 click_default: (params) ->
\r
143 dialog = @create_dialog()
\r
144 picker = new Pettanr.Views[@model.singular()].NewElement({
\r
145 parent: this, target_model: @model
\r
147 @listenTo(picker, 'pick', @pick)
\r
148 @listenTo(picker, 'dialog:open', @open_dialog)
\r
149 @listenTo(picker, 'dialog:close', @close_dialog)
\r
150 picker.start(dialog, params)
\r
152 pick: (new_item) ->
\r
153 @trigger('pick', new_item)
\r
155 open_dialog: (dialog) ->
\r
156 @trigger('dialog:open', dialog)
\r
158 close_dialog: (dialog) ->
\r
159 @trigger('dialog:close', dialog)
\r
164 class Editor.EditorModule.DockModule.NewElementLauncherHeader extends Backbone.View
\r
167 initialize: (options) ->
\r
169 @model = options.model
\r
173 icon = new Pettanr.Image.Icon({item: @model, half: true})
\r
174 caption = Pettanr.AppHelper.t_m(@model.singular())
\r
175 this.$el.append(icon.render().el)
\r
176 this.$el.append(caption)
\r