OSDN Git Service

fix: new speechballoon
[pettanr/pettanr.git] / app / assets / javascripts / views / ground_pictures / new_element.js.coffee
index 96a754e..cd6b0ee 100644 (file)
@@ -4,17 +4,38 @@ class Pettanr.Views.GroundPicture.NewElement extends Backbone.View
   \r
   initialize: (options) ->\r
     @parent = options.parent\r
-    @model = options.model\r
+    @target_model = options.target_model\r
+    @pick_model = @target_model.pick_model()\r
+  \r
+  clear: () ->\r
+    this.$el.html('')\r
     params = {\r
-      controller: @model.path_name(), action: 'index',\r
-      page_size: 6, format: 'pick'\r
+      controller: @pick_model.path_name(), action: 'index',\r
+      page_size: 6, format: 'html'\r
     }\r
-    @dialog().get(params, null)\r
+    @dialog().start(@target_model, params, null)\r
+    @listenTo(@dialog(), 'pick', @pick)\r
+    this\r
   \r
   render: () ->\r
-    this.$el.html(@img.clear().el)\r
+    this.$el.html('')\r
     this\r
   \r
+  pick: (item) ->\r
+    if item.item_name() == @target_model.item_name()\r
+      # Inspire\r
+      new_item = new @target_model(item.attributes)\r
+    else if @target_model.is_traceable(item.item_name())\r
+      # Trace\r
+      n = @target_model['trace_from_' + item.item_name()]\r
+      n()\r
+    else if item.item_name() == @target_model.pick_item_name()\r
+      # Pick  resource_picture to ground_picture\r
+      new_item = new @target_model()\r
+      new_item.set(new_item.pick(item), {silent: true})\r
+    @dialog().stop()\r
+    @trigger('pick', new_item)\r
+  \r
   dock: () ->\r
     @parent.dock()\r
   \r