OSDN Git Service

fix:
[pettanr/pettanr.git] / app / assets / javascripts / views / ground_pictures / new_element.js.coffee
1 class Pettanr.Views.GroundPicture.NewElement extends Backbone.View\r
2   tagName: 'div'\r
3   className: 'new-element-body'\r
4   \r
5   initialize: (options) ->\r
6     @parent = options.parent\r
7     @target_model = options.target_model\r
8     @pick_model = @target_model.pick_model()\r
9   \r
10   clear: () ->\r
11     this.$el.html('')\r
12     params = {\r
13       controller: @pick_model.path_name(), action: 'index',\r
14       page_size: 6, format: 'html'\r
15     }\r
16     @dialog().start(@target_model, params, null)\r
17     @listenTo(@dialog(), 'pick', @pick)\r
18     this\r
19   \r
20   render: () ->\r
21     this.$el.html('')\r
22     this\r
23   \r
24   pick: (item) ->\r
25     if item.item_name() == @target_model.item_name()\r
26       # Inspire\r
27       @listenTo(this, 'ready', @ready)\r
28       new_item = new @target_model(item.attributes)\r
29       new_item.unset('id', {silent: true})\r
30       new_item.set({panel_id: @editor().item.get('id')}, {silent: true})\r
31       @trigger('ready', new_item)\r
32     else if @target_model.is_traceable(item.item_name())\r
33       # Trace\r
34       tracer_class = @target_model['TraceFrom' + item.singular()]\r
35       tracer = new tracer_class()\r
36       @listenTo(tracer, 'trace', @trace)\r
37       tracer.trace(item)\r
38     else if item.item_name() == @target_model.pick_item_name()\r
39       # Pick  resource_picture to ground_picture\r
40       @listenTo(this, 'ready', @ready)\r
41       new_item = new @target_model()\r
42       new_item.set(new_item.pick(item), {silent: true})\r
43       @trigger('ready', new_item)\r
44   \r
45   ready: (new_item) ->\r
46     @dialog().stop()\r
47     @trigger('pick', new_item)\r
48   \r
49   trace: (resource_picture) ->\r
50     @dialog().http_get(resource_picture.show_url())\r
51   \r
52   dock: () ->\r
53     @parent.dock()\r
54   \r
55   editor: () ->\r
56     @dock().editor()\r
57   \r
58   dialog: () ->\r
59     @editor().dialog\r
60   \r