OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
authoryasushiito <yas@pen-chan.jp>
Mon, 2 Mar 2015 04:57:51 +0000 (13:57 +0900)
committeryasushiito <yas@pen-chan.jp>
Mon, 2 Mar 2015 04:57:51 +0000 (13:57 +0900)
app/assets/javascripts/controllers/panels.js.coffee
app/assets/javascripts/editor.js.coffee
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/editor/panel_editor/dock.js.coffee
app/assets/javascripts/locmare/form.js.coffee
app/assets/javascripts/locmare/form/field/tag/text.js.coffee
app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee
app/assets/javascripts/work/forms.js.coffee.erb
app/assets/stylesheets/test.css.scss
public/local_manifest.json

index e0849b6..de3b2e0 100644 (file)
@@ -55,7 +55,7 @@ class Pettanr.PanelsController extends Pettanr.AppController
     @item = panel.with_elements()\r
     @item.fetch({cache: false}).done =>\r
       editor = new Editor.PanelEditor({root_item: @item, operators: @operators})\r
-      editor.render()\r
+      #editor.render()\r
       @trigger('ready', editor)\r
   \r
   editor: () ->\r
index a912f7b..dbef8d3 100644 (file)
@@ -119,29 +119,6 @@ class Editor.EditorModule.DockModule.FormBucket extends Editor.EditorModule.Dock
   render: () ->\r
     @form.render()\r
   \r
-class Editor.EditorModule.DockModule.PriorityBucket extends Editor.EditorModule.DockModule.Bucket\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-  \r
-  board: () ->\r
-    @parent.board()\r
-  \r
-  bay: () ->\r
-    @board().bay()\r
-  \r
-class Editor.EditorModule.DockModule.ScenarioBucket extends Editor.EditorModule.DockModule.Bucket\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    @element = options.element\r
-  \r
-  board: () ->\r
-    @parent.board()\r
-  \r
-  bay: () ->\r
-    @board().bay()\r
-  \r
 class Editor.EditorModule.DockModule.TabModule\r
   \r
 class Editor.EditorModule.DockModule.TabModule.Label extends Backbone.View\r
index e49f9ed..826a8cb 100644 (file)
@@ -20,27 +20,25 @@ class Editor.PanelEditor extends Backbone.View
     _.each list, (element) =>\r
       element.fetch({cache: true}).done =>\r
         @add_element(element)\r
-    #@dock.add_new_tab()\r
     @body.on('panel:resize', @panel_resize)\r
     @listenTo(@dock, 'put', @put)\r
     Pettanr.History.lock_url = @panel.edit_url()\r
   \r
   add_element: (element) ->\r
-    console.log(element)\r
     panel_element_view = @body.add_element(element)\r
-    element_form = @dock.add_element(element)\r
-    @dig(element, panel_element_view, element_form)\r
+    element_tab_form = @dock.add_element_to_element_tab(element)\r
+    scenario_tab_form = @dock.add_element_to_scenario_tab(element)\r
+    @dig(element, panel_element_view, element_tab_form, scenario_tab_form)\r
     if element.constructor.has_picture()\r
       @credits.add_picture(element.picture())\r
   \r
-  dig: (element, panel_element_view, element_form) ->\r
-    console.log(element.elements_items())\r
+  dig: (element, panel_element_view, element_tab_form, scenario_tab_form) ->\r
     _.each element.elements_items(), (child_element) =>\r
-      console.log(child_element)\r
       child_element.fetch({cache: true}).done =>\r
         child_panel_element_view = panel_element_view.add_element(child_element)\r
-        child_element_form = element_form.add_element(child_element)\r
-        @dig(child_element, child_panel_element_view, child_element_form)\r
+        child_element_tab_form = element_tab_form.add_element(child_element)\r
+        child_scenario_tab_form = scenario_tab_form.add_element(child_element)\r
+        @dig(child_element, child_panel_element_view, child_element_tab_form, child_scenario_tab_form)\r
   \r
   remove_element: (element) ->\r
     \r
@@ -55,6 +53,8 @@ class Editor.PanelEditor extends Backbone.View
     this.$el.append(@credits.render().el)\r
     rb = new Tag.RowBreak()\r
     this.$el.append(rb.render().el)\r
+    @dock.init_tabs()\r
+    window.editor = this  # enable leave cancel flag on unsave\r
     @dock.$el.tabs()\r
     this\r
   \r
index 10a56ce..fafb917 100644 (file)
@@ -52,9 +52,18 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
       this.$el.append(tab.render().el)\r
     this\r
   \r
-  add_element: (element) ->\r
+  init_tabs: () ->\r
+    this.$el.tabs({\r
+      activate: (e, ui) ->\r
+        ui.newPanel.trigger('activate')\r
+    })\r
+  \r
+  add_element_to_element_tab: (element) ->\r
     @element_bay.add_element(element)\r
   \r
+  add_element_to_scenario_tab: (element) ->\r
+    @scenario_bay.add_element(element)\r
+  \r
   editor: () ->\r
     @parent\r
   \r
@@ -167,12 +176,23 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
   \r
   render: () ->\r
     this.$el.html('')\r
+    @delegateEvents({'activate': 'activate'})\r
     this.$el.attr('id', @body.dom_id())\r
     this.$el.append(@elements_tabs.render().el)\r
-    @elements_tabs.$el.tabs()\r
-    # @add_new_tab()\r
+    _this = this\r
+    @elements_tabs.$el.tabs({\r
+      activate: (e, ui) ->\r
+        ui.newPanel.trigger('activate')\r
+    })\r
     this\r
   \r
+  activate: () ->\r
+    _.each @tabs, (tab) ->\r
+      return if not tab.element  # without new element tab\r
+      console.log(tab.body.$el.css('display'))\r
+      if tab.body.$el.css('display') != 'none'\r
+        tab.body.refresh()\r
+  \r
   sorted: () ->\r
     # data-z copy to model\r
     _.each @tabs, (tab) ->\r
@@ -260,7 +280,6 @@ class Editor.EditorModule.DockModule.TabModule.ElementBayBody extends Editor.Edi
   \r
   render: () ->\r
     @body.render()\r
-  \r
 class Editor.EditorModule.DockModule.ElementBoard extends Editor.EditorModule.DockModule.Board\r
   \r
   initialize: (options) ->\r
@@ -305,6 +324,7 @@ class Editor.EditorModule.DockModule.TabModule.ElementBoardBody extends Editor.E
     })\r
   \r
   render: () ->\r
+    @delegateEvents({'activate': 'activate'})\r
     this.$el.attr('id', @dom_id())\r
     this.$el.html(@form.render().el)\r
     this\r
@@ -312,6 +332,12 @@ class Editor.EditorModule.DockModule.TabModule.ElementBoardBody extends Editor.E
   add_element: (element) ->\r
     @form.add_element(element)\r
   \r
+  activate: () ->\r
+    @refresh()\r
+  \r
+  refresh: () ->\r
+    @form.refresh()\r
+  \r
   mounted: () ->\r
     true\r
   \r
@@ -476,160 +502,207 @@ class Editor.EditorModule.DockModule.NewElementFormWrapper extends Backbone.View
     @model = model\r
     @render()\r
   \r
-class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.BoardBay\r
-  \r
-  initialize: (options) ->\r
-    super(options)\r
-    i = 0\r
-    _.each @elements(), (element) =>\r
-      tab = new Editor.EditorModule.DockModule.ScenarioBoard({\r
-        parent: this, index: i, name: element.item_name(), element: element\r
-      })\r
-      @add_tab(\r
-        tab, \r
-        new Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel({parent: tab, caption: element.item_name()}), \r
-        new Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody({parent: tab})\r
-      )\r
-      i++\r
+class Editor.EditorModule.DockModule.ScenarioBay extends Editor.EditorModule.DockModule.SimpleBay\r
   \r
   render: () ->\r
-    this.$el.html('')\r
-    this.$el.attr('id', @body.dom_id())\r
-    elements_tabs = new Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs({\r
-      tabs: @tabs\r
-    })\r
-    this.$el.append(elements_tabs.render().el)\r
-    _.each @tabs, (tab) =>\r
-      this.$el.append(tab.body.render().el)\r
-    elements_tabs.$el.tabs()\r
-    this\r
+    @body.render()\r
   \r
-  elements: () ->\r
-    @root_item().scenario_elements()\r
+  add_element: (element) ->\r
+    element_li = @body.add_element(element)\r
+    element_li.body.form\r
   \r
-  class_name: () ->\r
-    "tsort-box"\r
+  save_data: () ->\r
+    @body.form.save_data()\r
   \r
-class Editor.EditorModule.DockModule.ScenarioBay.ScenarioTabs extends Backbone.View\r
-  tagName: 'ul'\r
-  className: 'tsort'\r
+class Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
+  \r
+class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
   \r
   initialize: (options) ->\r
     super(options)\r
-    @tabs = options.tabs\r
+    @elements = new Editor.EditorModule.DockModule.ScenarioBay.Elements({\r
+      parent: this, \r
+    })\r
+    @listenTo(@elements, 'sorted', @sorted)\r
+  \r
+  add_element: (element) ->\r
+    element_li = @elements.add_element(element)\r
   \r
   render: () ->\r
-    this.$el.html('')\r
-    _.each @tabs, (tab) =>\r
-      this.$el.append(tab.label.render().el)\r
+    super()\r
+    this.$el.append(@elements.render().el)\r
+    @delegateEvents({'activate': 'activate'})\r
     this\r
   \r
-class Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
+  activate: () ->\r
+    @elements.refresh()\r
   \r
-class Editor.EditorModule.DockModule.TabModule.ScenarioBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
+  sorted: () ->\r
+    # data-t copy to model\r
+    _.each @elements.element_lis, (element_li) =>\r
+      t = parseInt(element_li.$el.attr('data-t'))\r
+      element_li.element.set({\r
+        t: t\r
+      }, {silent: true})\r
+      element_li.element.trigger('sort')\r
   \r
-  initialize: (options) ->\r
-    super(options)\r
+  panel_body: () ->\r
+    @dock().editor().body\r
   \r
-class Editor.EditorModule.DockModule.ScenarioBoard extends Editor.EditorModule.DockModule.Board\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
+class Editor.EditorModule.DockModule.ScenarioBay.Elements extends Backbone.View\r
+  tagName: 'ul'\r
+  className: 'scenarios_elements'\r
   \r
   initialize: (options) ->\r
     super(options)\r
-    @element = options.element\r
+    @parent = options.parent\r
+    @element_lis = []\r
   \r
-class Editor.EditorModule.DockModule.TabModule.ScenarioBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\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
-  with_destroy_button: () ->\r
-    false\r
+  refresh: () ->\r
+    _.each @element_lis, (element_li) =>\r
+      element_li.refresh()\r
   \r
-class Editor.EditorModule.DockModule.TabModule.ScenarioBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
+  scenario_elements: () ->\r
+    res = []\r
+    _.each @element_lis, (element_li) =>\r
+      res[element_li.t()] = element_li\r
+    res\r
   \r
-  initialize: (options) ->\r
-    super(options)\r
-    @bucket = new Editor.EditorModule.DockModule.ScenarioBucket({\r
-      parent: this\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
-class Editor.EditorModule.DockModule.PriorityBay extends Editor.EditorModule.DockModule.BoardBay\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
-    i = 0\r
-    _.each @elements(), (element) =>\r
-      tab = new Editor.EditorModule.DockModule.PriorityBoard({\r
-        parent: this, index: i, name: element.item_name(), element: element\r
-      })\r
-      @add_tab(\r
-        tab, \r
-        new Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel({parent: tab, name: element.item_name()}), \r
-        new Editor.EditorModule.DockModule.TabModule.PriorityBoardBody({parent: tab})\r
-      )\r
-      i++\r
+    @parent = options.parent\r
+    @element = options.element\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    this.$el.attr('id', @body.dom_id())\r
-    elements_tabs = new Editor.EditorModule.DockModule.PriorityBay.PriorityTabs({\r
-      tabs: @tabs\r
+    this.$el.attr('data-t', @t())\r
+    @label = new Editor.EditorModule.DockModule.ScenarioBay.ElementLabel({\r
+      parent: this, \r
     })\r
-    this.$el.append(elements_tabs.render().el)\r
-    _.each @tabs, (tab) =>\r
-      this.$el.append(tab.body.render().el)\r
-    elements_tabs.$el.tabs()\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
-  elements: () ->\r
-    @root_item().scenario_elements()\r
+  refresh: () ->\r
+    @body.form.refresh()\r
   \r
-  class_name: () ->\r
-    "zsort-box"\r
+  t: () ->\r
+    @element.get('t')\r
   \r
-class Editor.EditorModule.DockModule.PriorityBay.PriorityTabs extends Backbone.View\r
-  tagName: 'ul'\r
-  className: 'zsort'\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
-    @tabs = options.tabs\r
+    @parent = options.parent\r
   \r
   render: () ->\r
-    this.$el.html('')\r
-    _.each @tabs, (tab) =>\r
-      this.$el.append(tab.label.render().el)\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
-class Editor.EditorModule.DockModule.TabModule.PriorityBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
+  element: () ->\r
+    @parent.element\r
+  \r
+  elements: () ->\r
+    @parent.parent\r
   \r
-class Editor.EditorModule.DockModule.TabModule.PriorityBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
+  bay: () ->\r
+    @elements().parent\r
   \r
-  initialize: (options) ->\r
-    super(options)\r
+  dock: () ->\r
+    @bay().dock()\r
   \r
-class Editor.EditorModule.DockModule.PriorityBoard extends Editor.EditorModule.DockModule.Board\r
+class Editor.EditorModule.DockModule.ScenarioBay.ElementBody extends Backbone.View\r
   \r
   initialize: (options) ->\r
     super(options)\r
-    @element = options.element\r
+    @parent = options.parent\r
+    @form = Locmare.Form.factory({\r
+      form_name: @element().item_name(), \r
+      use_name: 'scenario' \r
+      item: @element(), \r
+      mounted: @mounted(), \r
+      submit: null, \r
+      operators: @dock().editor().operators,\r
+      action: '/' + @element().table_name() + '/' + Pettanr.to_s(@element().get('id'))\r
+    })\r
   \r
-  mounted: () ->\r
-    false\r
+  render: () ->\r
+    this.$el.html(@form.render().el)\r
+    this\r
   \r
-class Editor.EditorModule.DockModule.TabModule.PriorityBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
+  element: () ->\r
+    @parent.element\r
   \r
-  with_destroy_button: () ->\r
-    false\r
+  elements: () ->\r
+    @parent.parent\r
   \r
-class Editor.EditorModule.DockModule.TabModule.PriorityBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
+  bay: () ->\r
+    @elements().parent\r
   \r
-  initialize: (options) ->\r
-    super(options)\r
-    @bucket = new Editor.EditorModule.DockModule.PriorityBucket({\r
-      parent: this\r
-    })\r
-    \r
-#    form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]\r
-#    form = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted\r
-#    bucket = Bucket.new self,form\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
index c8de918..33bc7c2 100644 (file)
@@ -83,9 +83,16 @@ class Locmare.Form extends Locmare.FormBase
       @delegateEvents({'submit': method_type})\r
     this\r
   \r
+  refresh: () ->\r
+    _.each @fields, (field) =>\r
+      field.refresh()\r
+    _.each @child_forms, (child_form, name) =>\r
+      child_form.refresh()\r
+  \r
   add_element: (element) ->\r
     form = Locmare.Form.factory({\r
       form_name: element.item_name(), \r
+      use_name: @use_name,\r
       item: element, \r
       mounted: @mounted, \r
       submit: null, \r
@@ -211,6 +218,9 @@ class Locmare.ExtendForm extends Locmare.FormBase
     this.$el.append(@div_fields.render().el)\r
     this\r
   \r
+  refresh: () ->\r
+    @field.refresh()\r
+  \r
   init_fields: () ->\r
     _.each @manifest.field_names, (field_name) =>\r
       field_manifest = @manifest.fields[field_name]\r
index 87c667a..0f3abc2 100644 (file)
@@ -8,11 +8,11 @@ class Locmare.FormModule.FieldModule.TagModule.TextTag extends Locmare.FormModul
     this.$el.html('')\r
     @attr = {\r
       type: 'text',\r
-      name: @form_field_name(),\r
-      value: @value()\r
+      name: @form_field_name()\r
     }\r
     _.extend(@attr, @options())\r
     this.$el.attr(@attr)\r
+    this.$el.val(@value())\r
     this\r
   \r
   change: () ->\r
index 34857a6..6f81f74 100644 (file)
@@ -16,7 +16,7 @@ class Locmare.FormModule.FieldModule.TagModule.TextAreaTag extends Locmare.FormM
       delete @tag_manifest.options['size']\r
     _.extend(@attr, @options())\r
     this.$el.attr(@attr)\r
-    this.$el.html(@value())\r
+    this.$el.val(@value())\r
     this\r
   \r
   change: () ->\r
index 0845e97..9f05e94 100644 (file)
           't',\r
         ]\r
       },\r
+      scenario: {\r
+        fields: {\r
+          caption: {\r
+            tag: {\r
+              type: 'text',\r
+            },\r
+            row_break: true,\r
+          },\r
+        },\r
+        field_names: [\r
+          'caption',\r
+        ]\r
+      },\r
     },\r
   },\r
   speech_balloon: {\r
           'speech_balloon_template_settings',\r
         ],\r
       },\r
+      scenario: {\r
+        fields: {\r
+          caption: {\r
+            tag: {\r
+              type: 'text',\r
+            },\r
+            row_break: true,\r
+          },\r
+        },\r
+        field_names: [\r
+          'caption',\r
+        ]\r
+      },\r
     },\r
   },\r
   balloon: {\r
           'speech_balloon_template_settings',\r
         ],\r
       },\r
+      scenario: {\r
+        fields: {\r
+        },\r
+        field_names: [\r
+        ]\r
+      },\r
     },\r
   },\r
   speech: {\r
             tag: {\r
               type: 'text',\r
             },\r
+            row_break: true,\r
           },\r
           content: {\r
             label: {\r
           'writing_format_module_name',\r
         ],\r
       },\r
+      scenario: {\r
+        fields: {\r
+          quotes: {\r
+            tag: {\r
+              type: 'text',\r
+            },\r
+            row_break: true,\r
+          },\r
+          content: {\r
+            label: {\r
+              args: {\r
+                row_break: true,\r
+              },\r
+            },\r
+            tag: {\r
+              type: 'text_area',\r
+              args: {\r
+                options: {\r
+                  size: '45x5', \r
+                },\r
+              },\r
+            },\r
+          },\r
+        },\r
+        field_names: [\r
+          'quotes',\r
+          'content',\r
+        ]\r
+      },\r
     },\r
   },\r
   ground_picture: {\r
           'picture_id',\r
         ]\r
       },\r
+      scenario: {\r
+        fields: {\r
+          caption: {\r
+            tag: {\r
+              type: 'text',\r
+            },\r
+            row_break: true,\r
+          },\r
+        },\r
+        field_names: [\r
+          'caption',\r
+        ]\r
+      },\r
     },\r
   },\r
   ground_color: {\r
           't',\r
         ]\r
       },\r
+      scenario: {\r
+        fields: {\r
+          caption: {\r
+            tag: {\r
+              type: 'text',\r
+            },\r
+            row_break: true,\r
+          },\r
+        },\r
+        field_names: [\r
+          'caption',\r
+        ]\r
+      },\r
     },\r
   },\r
   original_picture_license_group: {\r
index 3b2499c..994e0c0 100644 (file)
@@ -259,54 +259,6 @@ font-family : monospace;
     margin: 3px 10px;
   }
 
-.tsort-box {
-  float: left;
-  font-size: 12px;
-}
-.scenario {
-  float: left;
-}
-.tsort-row-break {
-  clear: both;
-}
-.tsort-tabs-nav {
-    padding: .2em .1em .2em .2em;
-    width: 220px;
-}
-.tsort {
-    list-style-type: none;
-    margin: 0;
-    padding: 0;
-}
-.tsort li {
-    margin: 0 3px 3px 3px;
-    padding: 0.3em;
-    padding-left: 1em;
-    font-size: 12px;
-    cursor: move;
-}
-.tsort-row-break {
-  clear: both;
-}
-.zsort-box {
-  font-size: 12px;
-}
-.zsort-tabs-nav {
-    padding: .2em .1em .2em .2em;
-    width: 220px;
-}
-.zsort {
-    list-style-type: none;
-    margin: 0;
-    padding: 0;
-}
-.zsort li {
-    margin: 0 3px 3px 3px;
-    padding: 0.3em;
-    padding-left: 1em;
-    font-size: 12px;
-    cursor: move;
-}
 #elements-tabs {
     font-size: 12px;
 }
@@ -389,6 +341,14 @@ font-family : monospace;
 .new-element-buttons div {
   clear: both;
 }
+ul.scenarios_elements {
+  list-style-type: none;
+  padding: 0;
+}
+
+.scenario-label {
+   float: left;
+}
 
 .speech_balloon_template_item {
   float: left;
index 4b6b97f..342511e 100644 (file)
             "z",\r
             "t"\r
           ]\r
+        },\r
+        "scenario": {\r
+          "fields": {\r
+            "caption": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "field_names": [\r
+            "caption"\r
+          ]\r
         }\r
       }\r
     },\r
             "t",\r
             "speech_balloon_template_settings"\r
           ]\r
+        },\r
+        "scenario": {\r
+          "fields": {\r
+            "caption": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "field_names": [\r
+            "caption"\r
+          ]\r
         }\r
       }\r
     },\r
             "speech_balloon_template_module_name",\r
             "speech_balloon_template_settings"\r
           ]\r
+        },\r
+        "scenario": {\r
+          "fields": {},\r
+          "field_names": []\r
         }\r
       }\r
     },\r
             "quotes": {\r
               "tag": {\r
                 "type": "text"\r
-              }\r
+              },\r
+              "row_break": true\r
             },\r
             "content": {\r
               "label": {\r
             "speech_balloon_template_settings",\r
             "writing_format_module_name"\r
           ]\r
+        },\r
+        "scenario": {\r
+          "fields": {\r
+            "quotes": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            },\r
+            "content": {\r
+              "label": {\r
+                "args": {\r
+                  "row_break": true\r
+                }\r
+              },\r
+              "tag": {\r
+                "type": "text_area",\r
+                "args": {\r
+                  "options": {\r
+                    "size": "45x5"\r
+                  }\r
+                }\r
+              }\r
+            }\r
+          },\r
+          "field_names": [\r
+            "quotes",\r
+            "content"\r
+          ]\r
         }\r
       }\r
     },\r
             "panel_id",\r
             "picture_id"\r
           ]\r
+        },\r
+        "scenario": {\r
+          "fields": {\r
+            "caption": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "field_names": [\r
+            "caption"\r
+          ]\r
         }\r
       }\r
     },\r
             "z",\r
             "t"\r
           ]\r
+        },\r
+        "scenario": {\r
+          "fields": {\r
+            "caption": {\r
+              "tag": {\r
+                "type": "text"\r
+              },\r
+              "row_break": true\r
+            }\r
+          },\r
+          "field_names": [\r
+            "caption"\r
+          ]\r
         }\r
       }\r
     },\r