OSDN Git Service

fix: new elm
[pettanr/pettanr.git] / app / assets / javascripts / views / ground_colors / new_element.js.coffee
index a85c106..cea342e 100644 (file)
@@ -1,53 +1,58 @@
+class Pettanr.Views.GroundColor.NewElementLauncher extends Editor.EditorModule.DockModule.NewElementLauncher\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @links_conf = {\r
+      inspire: {\r
+        caption: 'Inspire',\r
+        params: {\r
+          controller: @model.path_name(), action: 'index',\r
+          page_size: 6, format: 'html'\r
+        }\r
+      }\r
+    }\r
+  \r
+  render: () ->\r
+    super()\r
+    pick = new Tag.A({\r
+      attr: {href: '/' + @model.path_name() + '/new'},\r
+      content: 'Default'\r
+    })\r
+    @listenTo(pick, 'click', @default_click)\r
+    this.$el.append(pick.render().el)\r
+    @add_links()\r
+    this\r
+  \r
+  default_click: () ->\r
+    model = @model\r
+    new_item = new model()\r
+    # new_item.set({}, {silent: true})\r
+    @pick(new_item)\r
+  \r
+  click_inspire: () ->\r
+    @click_default(@links_conf.inspire.params)\r
+  \r
 class Pettanr.Views.GroundColor.NewElement extends Backbone.View\r
-  tagName: 'div'\r
-  className: 'new-element-body'\r
   \r
   initialize: (options) ->\r
     @parent = options.parent\r
     @target_model = options.target_model\r
-    @pick_model = @target_model.pick_model()\r
   \r
-  clear: () ->\r
-    this.$el.html('new or inspire')\r
-    this\r
-  \r
-  render: (form) ->\r
-    this.$el.html('')\r
-    this.$el.append(@form.render().el)\r
-    this\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
-      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\r
-      model = @target_model.pick_model()\r
-      new_item = new model()\r
-    @dialog().stop()\r
-    @set_form(new_item)\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
+    @dialog.stop()\r
     @trigger('pick', new_item)\r
   \r
-  set_form: (item) ->\r
-    @form = Locmare.Form.factory({\r
-      form_name: item.item_name(), \r
-      use_name: 'default' \r
-      item: item, \r
-      element_form: true, \r
-      submit: null, \r
-      operators: @editor().operators,\r
-    })\r
-  \r
   dock: () ->\r
     @parent.dock()\r
   \r
   editor: () ->\r
     @dock().editor()\r
   \r
-  dialog: () ->\r
-    @editor().dialog\r
-  \r