-class Pettanr.Views.PanelPicture.NewElement extends Backbone.View\r
- tagName: 'div'\r
- className: 'new-element-body'\r
+class Pettanr.Views.PanelPicture.NewElementLauncher extends Editor.EditorModule.DockModule.NewElementLauncher\r
\r
initialize: (options) ->\r
- @parent = options.parent\r
- @model = options.model\r
+ super(options)\r
+ @links_conf = {}\r
+ _.extend(@links_conf, {\r
+ users: {\r
+ caption: "User's",\r
+ params: {\r
+ controller: @model.pick_model().path_name(), action: 'index',\r
+ page_size: 8, format: 'html'\r
+ }\r
+ }\r
+ })\r
+ if Pettanr.cache.operators.artist\r
+ _.extend(@links_conf, {\r
+ mine: {\r
+ caption: 'Mine',\r
+ params: {\r
+ controller: @model.pick_model().path_name(), action: 'by_artist', id: Pettanr.cache.operators.artist.get('id'), \r
+ page_size: 8, format: 'html'\r
+ }\r
+ }\r
+ })\r
+ _.extend(@links_conf, {\r
+ inspire_recent: {\r
+ caption: "Inspire recent item",\r
+ params: {\r
+ controller: @model.path_name(), action: 'index',\r
+ page_size: 8, format: 'html'\r
+ }\r
+ }\r
+ })\r
+ if Pettanr.cache.operators.author\r
+ _.extend(@links_conf, {\r
+ inspire_my_recent: {\r
+ caption: 'Inspire my recent item',\r
+ params: {\r
+ controller: @model.path_name(), action: 'by_author', id: Pettanr.cache.operators.author.get('id'), \r
+ page_size: 8, format: 'html'\r
+ }\r
+ }\r
+ })\r
+ _.extend(@links_conf, {\r
+ artists: {\r
+ caption: "Artists",\r
+ params: {\r
+ controller: 'artists', action: 'index',\r
+ page_size: 8, format: 'html'\r
+ }\r
+ }\r
+ })\r
\r
render: () ->\r
- this.$el.html('')\r
- params = {\r
- controller: @model.path_name(), action: 'index',\r
- page_size: 6, format: 'pick'\r
- }\r
- @dialog().get(params, null)\r
- @listenTo(@dialog(), 'pick', @pick)\r
+ super()\r
+ @add_links()\r
this\r
\r
+ click_users: () ->\r
+ @click_default(@links_conf.users.params)\r
+ \r
+ click_mine: () ->\r
+ @click_default(@links_conf.mine.params)\r
+ \r
+ click_inspire_recent: () ->\r
+ @click_default(@links_conf.inspire_recent.params)\r
+ \r
+ click_inspire_my_recent: () ->\r
+ @click_default(@links_conf.inspire_my_recent.params)\r
+ \r
+ click_artists: () ->\r
+ @click_default(@links_conf.artists.params)\r
+ \r
+class Pettanr.Views.PanelPicture.NewElement extends Pettanr.View\r
+ \r
+ initialize: (options) ->\r
+ @parent = options.parent\r
+ @target_model = options.target_model\r
+ @pick_model = @target_model.pick_model()\r
+ \r
+ start: (@dialog, params) ->\r
+ @dialog.start(@target_model, params, null)\r
+ @listenTo(@dialog, 'pick', @pick)\r
+ @trigger('dialog:open', @dialog)\r
+ \r
pick: (item) ->\r
+ if item.item_name() == @target_model.item_name()\r
+ # Inspire\r
+ @listenTo(this, 'ready', @ready)\r
+ new_item = new @target_model(item.attributes)\r
+ new_item.unset('id', {silent: true})\r
+ new_item.set({panel_id: @editor().item.get('id')}, {silent: true})\r
+ @trigger('ready', new_item)\r
+ else if @target_model.is_traceable(item.item_name())\r
+ # Trace\r
+ item.trace_to(item.my_class().pick_item_name(), this, {\r
+ success: (resource_picture) => \r
+ @dialog.http_get(resource_picture.show_url())\r
+ })\r
+ else if item.item_name() == @target_model.pick_item_name()\r
+ # Pick resource_picture to panel_picture\r
+ @listenTo(this, 'ready', @ready)\r
+ new_item = new @target_model()\r
+ new_item.set(new_item.pick(item), {silent: true})\r
+ new_item.set({x: 0, y: 0}, {silent: true})\r
+ @trigger('ready', new_item)\r
+ \r
+ ready: (new_item) ->\r
+ @dialog.stop()\r
+ @trigger('pick', new_item)\r
\r
dock: () ->\r
@parent.dock()\r
editor: () ->\r
@dock().editor()\r
\r
- dialog: () ->\r
- @editor().dialog\r
- \r