OSDN Git Service

fix: new elm
[pettanr/pettanr.git] / app / assets / javascripts / editor / panel_editor / scenario.js.coffee
index 2ab86ea..366e035 100644 (file)
@@ -9,11 +9,19 @@ class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.Doc
   add_element: (element) ->\r
     @body.add_element(element)\r
   \r
+  remove_element: (element) ->\r
+    @body.remove_element(element)\r
+  \r
   init_tabs: () ->\r
     list = @root_item().scenario_elements()\r
     _.each list, (element) =>\r
       @add_element(element)\r
   \r
+  pick: (new_item) ->\r
+    t = @length()\r
+    new_item.set({t: t}, {silent: true})\r
+    @add_element(new_item)\r
+  \r
   save_data: () ->\r
     @body.form.save_data()\r
   \r
@@ -34,6 +42,10 @@ class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.Ed
   add_element: (element) ->\r
     @elements.add_element(element)\r
   \r
+  remove_element: (element) ->\r
+    @elements.remove_element(element)\r
+    @sorted()    # recalc t\r
+  \r
   render: () ->\r
     super()\r
     this.$el.append(@elements.render().el)\r
@@ -55,179 +67,6 @@ class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.Ed
   panel_body: () ->\r
     @dock().editor().body\r
   \r
-  save_data: () ->\r
-    attrs = {}\r
-    _.each @tabs, (tab) ->\r
-      return if not tab.element  # without new element tab\r
-      form = tab.body.form\r
-      name = form.item.table_name() + '_attributes'\r
-      attrs[name] ||= []\r
-      attrs[name].push(form.save_data())\r
-    attrs\r
-  \r
   length: () ->\r
     @elements.element_lis.length\r
   \r
-class Editor.EditorModule.DockModule.ScenarioBay.Elements extends Backbone.View\r
-  tagName: 'ul'\r
-  className: 'scenarios_elements'\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @parent = options.parent\r
-    @element_lis = []\r
-  \r
-  render: () ->\r
-    this.$el.html('')\r
-    _.each @scenario_elements(), (element_li) =>\r
-      this.$el.append(element_li.render().$el)\r
-    _this = this\r
-    this.$el.sortable {\r
-      update: (event, ui) ->\r
-        t = 0\r
-        $('.t-label', $(@)).map ->\r
-          $(@).attr('data-t', t)\r
-          t++\r
-        _this.trigger('sorted')\r
-    }\r
-    this\r
-  \r
-  refresh: () ->\r
-    _.each @element_lis, (element_li) =>\r
-      element_li.refresh()\r
-  \r
-  scenario_elements: () ->\r
-    res = []\r
-    _.each @element_lis, (element_li) =>\r
-      res[element_li.t()] = element_li\r
-    res\r
-  \r
-  add_element: (element) ->\r
-    e = new Editor.EditorModule.DockModule.ScenarioBay.Element({\r
-      parent: this, \r
-      element: element\r
-    })\r
-    @element_lis.push(e) # insert array\r
-    @render()\r
-    e\r
-  \r
-  sorted: () ->\r
-    # data-t copy to model\r
-    @trigger('sorted')\r
-  \r
-class Editor.EditorModule.DockModule.ScenarioBay.Element extends Backbone.View\r
-  tagName: 'li'\r
-  className: 't-label'\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @parent = options.parent\r
-    @element = options.element\r
-  \r
-  render: () ->\r
-    this.$el.html('')\r
-    this.$el.attr('data-t', @t())\r
-    @label = new Editor.EditorModule.DockModule.ScenarioBay.ElementLabel({\r
-      parent: this, \r
-    })\r
-    @body = new Editor.EditorModule.DockModule.ScenarioBay.ElementBody({\r
-      parent: this, \r
-    })\r
-    this.$el.append(@label.render().$el)\r
-    this.$el.append(@body.render().$el)\r
-    rb = new Tag.RowBreak()\r
-    this.$el.append(rb.render().el)\r
-    this\r
-  \r
-  refresh: () ->\r
-    @body.form.refresh()\r
-  \r
-  t: () ->\r
-    @element.get('t')\r
-  \r
-  dom_id: () ->\r
-    super() + '-' + @element.get('id')  # use tab index\r
-  \r
-class Editor.EditorModule.DockModule.ScenarioBay.ElementLabel extends Backbone.View\r
-  className: 'scenario-label'\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @parent = options.parent\r
-  \r
-  render: () ->\r
-    this.$el.append(@element().element_face().render().el)\r
-    _this = this\r
-    this.$el.mouseover -> \r
-      _this.element().trigger('active')\r
-    this.$el.mouseout -> \r
-      _this.element().trigger('inactive')\r
-    this\r
-  \r
-  element: () ->\r
-    @parent.element\r
-  \r
-  elements: () ->\r
-    @parent.parent\r
-  \r
-  bay: () ->\r
-    @elements().parent\r
-  \r
-  dock: () ->\r
-    @bay().dock()\r
-  \r
-class Editor.EditorModule.DockModule.ScenarioBay.ElementBody extends Backbone.View\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @parent = options.parent\r
-    @form = Locmare.Form.factory({\r
-      form_name: @element().item_name(), \r
-      use_name: 'scenario' \r
-      item: @element(), \r
-      element_form: true, \r
-      submit: null, \r
-    })\r
-  \r
-  render: () ->\r
-    this.$el.html(@form.render().el)\r
-    this\r
-  \r
-  element: () ->\r
-    @parent.element\r
-  \r
-  elements: () ->\r
-    @parent.parent\r
-  \r
-  bay: () ->\r
-    @elements().parent\r
-  \r
-  dock: () ->\r
-    @bay().dock()\r
-  \r
-  mounted: () ->\r
-    true\r
-  \r
-  element: () ->\r
-    @parent.element\r
-  \r
-class Editor.EditorModule.DockModule.NewBay extends Editor.EditorModule.DockModule.BoardBay\r
-  \r
-\r
-class Editor.EditorModule.DockModule.TabModule.NewBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
-  \r
-\r
-class Editor.EditorModule.DockModule.TabModule.NewBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-  \r
-class Editor.EditorModule.DockModule.NewBoard extends Editor.EditorModule.DockModule.Board\r
-  \r
-class Editor.EditorModule.DockModule.TabModule.NewBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
-  \r
-class Editor.EditorModule.DockModule.TabModule.NewBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-  \r