OSDN Git Service

fix open dialog
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / dock.js.coffee
index 0469822..375c888 100644 (file)
@@ -311,125 +311,84 @@ class Editor.EditorModule.DockModule.TabModule.NewElementBoardLabel extends Edit
     this.$el.attr('id', @dom_id())\r
   \r
 class Editor.EditorModule.DockModule.TabModule.NewElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
+  className: 'new-element-board-body'\r
   \r
   initialize: (options) ->\r
     super(options)\r
   \r
   render: () ->\r
     this.$el.attr('id', @dom_id())\r
-    @new_element_pocket = new Editor.EditorModule.DockModule.NewElementPocket({\r
-      parent: this\r
+    @buttons = new Editor.EditorModule.DockModule.NewElementButtons({\r
+      parent: this, element_models: @element_models()\r
     })\r
-    this.$el.append(@new_element_pocket.render().el)\r
-    this\r
-  \r
-class Editor.EditorModule.DockModule.NewElementPocket extends Editor.EditorModule.DockModule.Pocket\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @button_wrapper = new Editor.EditorModule.DockModule.NewElementPocket.ButtonWrapper({\r
+    @form_wrapper = new Editor.EditorModule.DockModule.NewElementFormWrapper({\r
       parent: this\r
     })\r
-  \r
-  render: () ->\r
-    this.$el.html('')\r
-    this.$el.append(@button_wrapper.clear().el)\r
-    @add_tabs()\r
-    _.each @tabs, (tab) =>\r
-      this.$el.append(tab.body.render().el)\r
-    @button_wrapper.render()\r
-    this.$el.tabs()\r
+    this.$el.append(@buttons.render().el)\r
+    this.$el.append(@form_wrapper.clear().el)\r
     this\r
   \r
-  add_tabs: () ->\r
-    index = 0\r
-    _.each @element_models(), (model) =>\r
-      tab = new Editor.EditorModule.DockModule.NewElementPocketTab({\r
-        parent: this, index: index, name: model.item_name(), model: model\r
-      })\r
-      bb = new Editor.EditorModule.DockModule.TabModule.NewElementPocketBody({\r
-        parent: tab\r
-      })\r
-      bl = new Editor.EditorModule.DockModule.TabModule.NewElementPocketLabel({\r
-        parent: tab\r
-      })\r
-      @add_tab(tab, bl, bb)\r
-      @button_wrapper.add_label(bl)\r
-      index++\r
-  \r
   panel: () ->\r
-    @parent.parent.panel\r
+    @parent.panel\r
   \r
   element_models: () ->\r
     @panel().my_class().child_models()\r
   \r
-class Editor.EditorModule.DockModule.NewElementPocket.ButtonWrapper extends Backbone.View\r
+class Editor.EditorModule.DockModule.NewElementButtons extends Backbone.View\r
   tagName: 'div'\r
-  className: 'new_elements_tabs ui-tabs-vertical ui-helper-clearfix'\r
+  className: 'new-element-buttons'\r
   \r
   initialize: (options) ->\r
     super(options)\r
     @parent = options.parent\r
-    @buttons = new Editor.EditorModule.DockModule.NewElementPocket.Buttons({\r
-      parent: this\r
-    })\r
-  \r
-  clear: () ->\r
-    this.$el.html('')\r
-    this\r
+    @element_models = options.element_models\r
   \r
   render: () ->\r
-    this.$el.append(@buttons.render().$el)\r
+    _.each @element_models, (model) =>\r
+      button = new Editor.EditorModule.DockModule.NewElementButton({\r
+        parent: this, model: model\r
+      })\r
+      this.$el.append(button.render().el)\r
     this\r
   \r
-  add_label: (label) ->\r
-    @buttons.add_label(label)\r
-  \r
-class Editor.EditorModule.DockModule.NewElementPocket.Buttons extends Backbone.View\r
-  tagName: 'ul'\r
+class Editor.EditorModule.DockModule.NewElementButton extends Backbone.View\r
+  tagName: 'div'\r
   \r
   initialize: (options) ->\r
     super(options)\r
     @parent = options.parent\r
-    @labels = []\r
+    @model = options.model\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.addClass('inner-new-elements-tabs')\r
-    _.each @labels, (label) =>\r
-      this.$el.append(label.render().$el)\r
-    this\r
-  \r
-  add_label: (label) ->\r
-    @labels.push(label)\r
-  \r
-class Editor.EditorModule.DockModule.TabModule.NewElementPocketLabel extends Editor.EditorModule.DockModule.TabModule.PocketLabel\r
-  \r
-  render: () ->\r
-    super()\r
-    this.$el.removeClass('ui-corner-top')\r
-    this.$el.addClass('ui-corner-left')\r
+    icon = new Pettanr.Image.Icon({item: @model})\r
+    linked_icon = new Editor.EditorModule.DockModule.NewElementLinkedButton({\r
+      attr: {href: '#event' },\r
+      content: icon.render().el,\r
+      handler_name: 'click'\r
+    })\r
+    @listenTo(linked_icon, 'click', @click)\r
+    this.$el.append(linked_icon.render().el)\r
     this\r
   \r
-  add_label: () ->\r
-    this.$el.attr('id', @dom_id())\r
+  click: () ->\r
+    @set_dialog()\r
+    @set_form()\r
+    @dialog().$el.dialog('open')\r
   \r
-class Editor.EditorModule.DockModule.TabModule.NewElementPocketBody extends Editor.EditorModule.DockModule.TabModule.PocketBody\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-  \r
-  render: () ->\r
-    this.$el.attr('id', @dom_id())\r
-    @params = {controller: @model().path_name(), action: 'index'}\r
+  set_dialog: () ->\r
+    @params = {\r
+      controller: @model.path_name(), action: 'index',\r
+      page_size: 6\r
+    }\r
     @list = Locmare.ListGroup.list(\r
-      @model().path_name(), 'index', @operators(), @params\r
+      @model.path_name(), 'index', @operators(), @params\r
     )\r
     @list.open(() =>\r
       pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, @params)\r
       f = new Locmare.Filer({\r
-        el: '#' + @dom_id(),\r
-        item_name: @model().item_name(), \r
+        el: @dialog().$el,\r
+        item_name: @model.item_name(), \r
         items: @list.items(), \r
         pager: pager, \r
         operators: @operators()\r
@@ -437,15 +396,48 @@ class Editor.EditorModule.DockModule.TabModule.NewElementPocketBody extends Edit
     )\r
     this\r
   \r
+  set_form: () ->\r
+    @form_wrapper().select(@model)\r
+  \r
   operators: () ->\r
     @editor().operators\r
   \r
-  model: () ->\r
-    @pocket_tab().model\r
+  form_wrapper: () ->\r
+    @parent.parent.form_wrapper\r
+  \r
+  dock: () ->\r
+    @parent.parent.dock()\r
+  \r
+  dialog: () ->\r
+    @editor().dialog\r
   \r
   editor: () ->\r
     @dock().parent\r
   \r
+class Editor.EditorModule.DockModule.NewElementLinkedButton extends Tag.A\r
+  \r
+  click: () ->\r
+    @trigger('click')\r
+    return false\r
+  \r
+class Editor.EditorModule.DockModule.NewElementFormWrapper extends Backbone.View\r
+  tagName: 'div'\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @parent = options.parent\r
+  \r
+  clear: () ->\r
+    this.$el.html('new form')\r
+    this\r
+  \r
+  render: () ->\r
+    this.$el.html(@model.item_name())\r
+  \r
+  select: (model) ->\r
+    @model = model\r
+    @render()\r
+  \r
 class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.BoardBay\r
   \r
   initialize: (options) ->\r