OSDN Git Service

fix: new elm launcher
[pettanr/pettanr.git] / app / assets / javascripts / views / panel_pictures / new_element.js.coffee
1 class Pettanr.Views.PanelPicture.NewElementLauncher extends Editor.EditorModule.DockModule.NewElementLauncher\r
2   \r
3   initialize: (options) ->\r
4     super(options)\r
5     @links_conf = {\r
6       resource_picture: {\r
7         caption: 'Resource Picture',\r
8         params: {\r
9           controller: @model.pick_model().path_name(), action: 'index',\r
10           page_size: 6, format: 'html'\r
11         }\r
12       }\r
13     }\r
14   \r
15   render: () ->\r
16     super()\r
17     @add_links()\r
18     this\r
19   \r
20   click_resource_picture: () ->\r
21     @click_default(@links_conf.resource_picture.params)\r
22   \r
23 class Pettanr.Views.PanelPicture.NewElement extends Backbone.View\r
24   \r
25   initialize: (options) ->\r
26     @parent = options.parent\r
27     @target_model = options.target_model\r
28     @pick_model = @target_model.pick_model()\r
29   \r
30   start: (@dialog, params) ->\r
31     @dialog.start(@target_model, params, null)\r
32     @listenTo(@dialog, 'pick', @pick)\r
33     @trigger('dialog:open', @dialog)\r
34   \r
35   pick: (item) ->\r
36     if item.item_name() == @target_model.item_name()\r
37       # Inspire\r
38       @listenTo(this, 'ready', @ready)\r
39       new_item = new @target_model(item.attributes)\r
40       new_item.unset('id', {silent: true})\r
41       new_item.set({panel_id: @editor().item.get('id')}, {silent: true})\r
42       @trigger('ready', new_item)\r
43     else if @target_model.is_traceable(item.item_name())\r
44       # Trace\r
45       tracer_class = @target_model['TraceFrom' + item.singular()]\r
46       tracer = new tracer_class()\r
47       @listenTo(tracer, 'trace', @trace)\r
48       tracer.trace(item)\r
49     else if item.item_name() == @target_model.pick_item_name()\r
50       # Pick  resource_picture to panel_picture\r
51       @listenTo(this, 'ready', @ready)\r
52       new_item = new @target_model()\r
53       new_item.set(new_item.pick(item), {silent: true})\r
54       new_item.set({x: 0, y: 0}, {silent: true})\r
55       @trigger('ready', new_item)\r
56   \r
57   ready: (new_item) ->\r
58     @dialog.stop()\r
59     @trigger('pick', new_item)\r
60   \r
61   trace: (resource_picture) ->\r
62     @dialog.http_get(resource_picture.show_url())\r
63   \r
64   dock: () ->\r
65     @parent.dock()\r
66   \r
67   editor: () ->\r
68     @dock().editor()\r
69   \r