OSDN Git Service

fix:replace row break
[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     _.extend(@links_conf, {\r
7       users: {\r
8         caption: "User's",\r
9         params: {\r
10           controller: @model.pick_model().path_name(), action: 'index',\r
11           page_size: 8, format: 'html'\r
12         }\r
13       }\r
14     })\r
15     if Pettanr.cache.operators.artist\r
16       _.extend(@links_conf, {\r
17         mine: {\r
18           caption: 'Mine',\r
19           params: {\r
20             controller: @model.pick_model().path_name(), action: 'by_artist', id: Pettanr.cache.operators.artist.get('id'), \r
21             page_size: 8, format: 'html'\r
22           }\r
23         }\r
24       })\r
25     _.extend(@links_conf, {\r
26       inspire_recent: {\r
27         caption: "Inspire recent item",\r
28         params: {\r
29           controller: @model.path_name(), action: 'index',\r
30           page_size: 8, format: 'html'\r
31         }\r
32       }\r
33     })\r
34     if Pettanr.cache.operators.author\r
35       _.extend(@links_conf, {\r
36         inspire_my_recent: {\r
37           caption: 'Inspire my recent item',\r
38           params: {\r
39             controller: @model.path_name(), action: 'by_author', id: Pettanr.cache.operators.author.get('id'), \r
40             page_size: 8, format: 'html'\r
41           }\r
42         }\r
43       })\r
44     _.extend(@links_conf, {\r
45       artists: {\r
46         caption: "Artists",\r
47         params: {\r
48           controller: 'artists', action: 'index',\r
49           page_size: 8, format: 'html'\r
50         }\r
51       }\r
52     })\r
53   \r
54   render: () ->\r
55     super()\r
56     @add_links()\r
57     this\r
58   \r
59   click_users: () ->\r
60     @click_default(@links_conf.users.params)\r
61   \r
62   click_mine: () ->\r
63     @click_default(@links_conf.mine.params)\r
64   \r
65   click_inspire_recent: () ->\r
66     @click_default(@links_conf.inspire_recent.params)\r
67   \r
68   click_inspire_my_recent: () ->\r
69     @click_default(@links_conf.inspire_my_recent.params)\r
70   \r
71   click_artists: () ->\r
72     @click_default(@links_conf.artists.params)\r
73   \r
74 class Pettanr.Views.PanelPicture.NewElement extends Pettanr.View\r
75   \r
76   initialize: (options) ->\r
77     @parent = options.parent\r
78     @target_model = options.target_model\r
79     @pick_model = @target_model.pick_model()\r
80   \r
81   start: (@dialog, params) ->\r
82     @dialog.start(@target_model, params, null)\r
83     @listenTo(@dialog, 'pick', @pick)\r
84     @trigger('dialog:open', @dialog)\r
85   \r
86   pick: (item) ->\r
87     if item.item_name() == @target_model.item_name()\r
88       # Inspire\r
89       @listenTo(this, 'ready', @ready)\r
90       new_item = new @target_model(item.attributes)\r
91       new_item.unset('id', {silent: true})\r
92       new_item.set({panel_id: @editor().item.get('id')}, {silent: true})\r
93       @trigger('ready', new_item)\r
94     else if @target_model.is_traceable(item.item_name())\r
95       # Trace\r
96       tracer_class = @target_model['TraceFrom' + item.singular()]\r
97       tracer = new tracer_class()\r
98       @listenTo(tracer, 'trace', @trace)\r
99       tracer.trace(item)\r
100     else if item.item_name() == @target_model.pick_item_name()\r
101       # Pick  resource_picture to panel_picture\r
102       @listenTo(this, 'ready', @ready)\r
103       new_item = new @target_model()\r
104       new_item.set(new_item.pick(item), {silent: true})\r
105       new_item.set({x: 0, y: 0}, {silent: true})\r
106       @trigger('ready', new_item)\r
107   \r
108   ready: (new_item) ->\r
109     @dialog.stop()\r
110     @trigger('pick', new_item)\r
111   \r
112   trace: (resource_picture) ->\r
113     @dialog.http_get(resource_picture.show_url())\r
114   \r
115   dock: () ->\r
116     @parent.dock()\r
117   \r
118   editor: () ->\r
119     @dock().editor()\r
120   \r