OSDN Git Service

fix: new elm
authoryasushiito <yas@pen-chan.jp>
Tue, 5 May 2015 01:45:59 +0000 (10:45 +0900)
committeryasushiito <yas@pen-chan.jp>
Tue, 5 May 2015 01:45:59 +0000 (10:45 +0900)
13 files changed:
app/assets/javascripts/editor/panel_editor/dock.js.coffee
app/assets/javascripts/editor/panel_editor/element.js.coffee
app/assets/javascripts/editor/panel_editor/element/new_board.js.coffee
app/assets/javascripts/editor/panel_editor/scenario.js.coffee
app/assets/javascripts/editor/panel_editor/scenario/element.js.coffee [new file with mode: 0644]
app/assets/javascripts/editor/panel_editor/scenario/elements.js.coffee [new file with mode: 0644]
app/assets/javascripts/views/ground_colors/new_element.js.coffee
app/assets/javascripts/views/ground_pictures/element.js.coffee
app/assets/javascripts/views/ground_pictures/new_element.js.coffee
app/assets/javascripts/views/panel_pictures/new_element.js.coffee
app/assets/javascripts/views/speech_balloons/new_element.js.coffee
app/assets/javascripts/yasapp.js
app/assets/stylesheets/test.css.scss

index c9e7fe2..f1e3b22 100644 (file)
@@ -100,10 +100,7 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
     @root_bay.body.form.save(attrs)\r
   \r
   pick: (new_item) ->\r
-    t = @scenario_bay.length()\r
-    z = @element_bay.new_tab.label.z()\r
-    new_item.set({z: z, t: t}, {silent: true})\r
-    @scenario_bay.add_element(new_item)\r
+    @scenario_bay.pick(new_item)\r
     @trigger('add:element', new_item)\r
   \r
   open_dialog: (dialog) ->\r
@@ -114,6 +111,7 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
   \r
   destroy: (element) ->\r
     @trigger('destroy', element)\r
+    @scenario_bay.remove_element(element)\r
   \r
   quit: () ->\r
     @root_bay.body.form.quit()\r
index ba51596..8fc1589 100644 (file)
@@ -2,6 +2,7 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
   \r
   initialize: (options) ->\r
     super(options)\r
+    @current_index = 1\r
     @boards = new Editor.EditorModule.DockModule.ElementBay.Boards({\r
       parent: this\r
     })\r
@@ -9,10 +10,9 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
     @removed_elements = []\r
   \r
   add_element: (element) ->\r
-    index = @tabs.length\r
     @shift_z()\r
     tab = new Editor.EditorModule.DockModule.ElementBoard({\r
-      parent: this, index: index, name: element.item_name(), element: element\r
+      parent: this, index: @current_index, name: element.item_name(), element: element\r
     })\r
     bl = new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({\r
       parent: tab, \r
@@ -25,22 +25,29 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
     @boards.$el.tabs('refresh')\r
     if element.constructor.has_picture()\r
       @trigger('add:credit', element)\r
+    @sorted()    # recalc z\r
+    @current_index++\r
   \r
-  remove_element: (element) ->\r
-    if !element.isNew()\r
-      element.set({_destroy: true}, {silent: true})\r
-      @removed_elements.push element\r
+  find_tab: (element) ->\r
     t = null\r
     _.each @tabs, (tab) =>\r
       if tab.element\r
         if tab.element.cid == element.cid\r
           t = tab\r
           return\r
-    t.label.remove()\r
-    # t.body.form.remove_elements()\r
-    t.body.remove()\r
-    @remove_tab(t.index)\r
+    t\r
+  \r
+  remove_element: (element) ->\r
+    if !element.isNew()\r
+      element.set({_destroy: true}, {silent: true})\r
+      @removed_elements.push element\r
+    tab = @find_tab(element)\r
+    tab.label.remove()\r
+    tab.body.remove()\r
+    delete @tabs[tab]\r
+    @tabs = _.compact(@tabs)\r
     @unshift_z()\r
+    @sorted()    # recalc t\r
   \r
   shift_z: () ->\r
     new_tab_z = @new_tab.label.z()\r
@@ -50,20 +57,6 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
   \r
   unshift_z: () ->\r
     @boards.labels.reorder()\r
-    new_tab_z = @new_tab.label.z()\r
-    index = 0\r
-    _.each @tabs, (tab) ->\r
-      z = tab.label.z()\r
-      tab.label.$el.attr('data-z', z + 1) if z >= new_tab_z  # new tab too\r
-      tab.index = index\r
-      index++\r
-    t = 0\r
-    _.each @tabs, (tab) =>\r
-      if tab.element\r
-        tab.element.set({\r
-          z: t + 1, t: t\r
-        }, {silent: true})\r
-        t++\r
   \r
   add_new_tab: () ->\r
     @new_tab = new Editor.EditorModule.DockModule.NewElementBoard({\r
@@ -137,6 +130,8 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
   \r
   pick: (new_item) ->\r
     @add_element(new_item)\r
+    z = @new_tab.label.z()\r
+    new_item.set({z: z}, {silent: true})\r
     @trigger('pick', new_item)\r
   \r
   open_dialog: (dialog) ->\r
index 6fcc6d5..7cc2766 100644 (file)
@@ -121,8 +121,11 @@ class Editor.EditorModule.DockModule.NewElementLauncher extends Backbone.View
       attr: {href: '/' + url},\r
       content: caption\r
     })\r
+    span = new Tag.Span({\r
+      content: link.render().el\r
+    })\r
     @listenTo(link, 'click', this['click_' + name])\r
-    this.$el.append(link.render().el)\r
+    this.$el.append(span.render().el)\r
   \r
   create_dialog: () ->\r
     dialog = new Editor.PanelEditor.Dialog({\r
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
diff --git a/app/assets/javascripts/editor/panel_editor/scenario/element.js.coffee b/app/assets/javascripts/editor/panel_editor/scenario/element.js.coffee
new file mode 100644 (file)
index 0000000..48b66a7
--- /dev/null
@@ -0,0 +1,96 @@
+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
diff --git a/app/assets/javascripts/editor/panel_editor/scenario/elements.js.coffee b/app/assets/javascripts/editor/panel_editor/scenario/elements.js.coffee
new file mode 100644 (file)
index 0000000..3a8f5b3
--- /dev/null
@@ -0,0 +1,68 @@
+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
+        _this.reorder()\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
+  find_li: (element) ->\r
+    li = null\r
+    _.each @element_lis, (element_li) =>\r
+      if element_li.element.cid == element.cid\r
+        li = element_li\r
+        return\r
+    li\r
+  \r
+  remove_element: (element) ->\r
+    li = @find_li(element)\r
+    li.remove()\r
+    delete @element_lis[li]\r
+    @element_lis = _.compact(@element_lis)\r
+    @unshift_z()\r
+  \r
+  unshift_z: () ->\r
+    @reorder()\r
+  \r
+  reorder: () ->\r
+    t = 0\r
+    $('.t-label', this.$el).map ->\r
+      $(@).attr('data-t', t)\r
+      t++\r
+  \r
+  sorted: () ->\r
+    # data-t copy to model\r
+    @trigger('sorted')\r
+  \r
index 6747d82..cea342e 100644 (file)
@@ -14,13 +14,16 @@ class Pettanr.Views.GroundColor.NewElementLauncher extends Editor.EditorModule.D
   \r
   render: () ->\r
     super()\r
-    @pick_icon = new Pettanr.Views.Common.PickIcon({name: 'pick'})\r
-    @listenTo(@pick_icon, 'click', @pick_click)\r
-    this.$el.append(@pick_icon.render().el)\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
-  pick_click: () ->\r
+  default_click: () ->\r
     model = @model\r
     new_item = new model()\r
     # new_item.set({}, {silent: true})\r
index a9317f9..70061aa 100644 (file)
@@ -59,10 +59,13 @@ class Pettanr.Views.GroundPicture.Element.Edit extends Pettanr.Views.GroundPictu
     @listenTo(@element, 'input:repeat', @restyle)\r
     @listenTo(@element, 'input:x', @restyle)\r
     @listenTo(@element, 'input:y', @restyle)\r
-    @listenTo(@element, 'sort', @restyle)\r
     @listenTo(@element, 'active', @active)\r
     @listenTo(@element, 'inactive', @inactive)\r
   \r
+  retrieve_picture: (picture) ->\r
+    @listenTo(@element, 'sort', @restyle)\r
+    super(picture)\r
+  \r
   active: () ->\r
     @root.trigger('active')\r
   \r
index 9d6eb35..2b6f2c0 100644 (file)
@@ -2,23 +2,62 @@ class Pettanr.Views.GroundPicture.NewElementLauncher extends Editor.EditorModule
   \r
   initialize: (options) ->\r
     super(options)\r
-    @links_conf = {\r
-      resource_picture: {\r
-        caption: 'Resource Picture',\r
+    @links_conf = {}\r
+    _.extend(@links_conf, {\r
+      users: {\r
+        caption: "User's",\r
         params: {\r
           controller: @model.pick_model().path_name(), action: 'index',\r
           page_size: 6, format: 'html'\r
         }\r
       }\r
-    }\r
+    })\r
+    if Pettanr.cache.operators.artist\r
+      _.extend(@links_conf, {\r
+        mine: {\r
+          caption: 'Mine',\r
+          params: {\r
+            controller: @model.pick_model().path_name(), action: 'by_artist', id: Pettanr.cache.operators.artist.get('id'), \r
+            page_size: 6, format: 'html'\r
+          }\r
+        }\r
+      })\r
+    _.extend(@links_conf, {\r
+      inspire_recent: {\r
+        caption: "Inspire recent item",\r
+        params: {\r
+          controller: @model.path_name(), action: 'index',\r
+          page_size: 6, format: 'html'\r
+        }\r
+      }\r
+    })\r
+    if Pettanr.cache.operators.author\r
+      _.extend(@links_conf, {\r
+        inspire_my_recent: {\r
+          caption: 'Inspire my recent item',\r
+          params: {\r
+            controller: @model.path_name(), action: 'by_author', id: Pettanr.cache.operators.author.get('id'), \r
+            page_size: 6, format: 'html'\r
+          }\r
+        }\r
+      })\r
   \r
   render: () ->\r
     super()\r
     @add_links()\r
     this\r
   \r
-  click_resource_picture: () ->\r
-    @click_default(@links_conf.resource_picture.params)\r
+  click_users: () ->\r
+    @click_default(@links_conf.users.params)\r
+  \r
+  click_mine: () ->\r
+    @click_default(@links_conf.mine.params)\r
+  \r
+  click_inspire_recent: () ->\r
+    @click_default(@links_conf.inspire_recent.params)\r
+  \r
+  click_inspire_my_recent: () ->\r
+    @click_default(@links_conf.inspire_my_recent.params)\r
   \r
 class Pettanr.Views.GroundPicture.NewElement extends Backbone.View\r
   \r
index 6ccd987..f70891e 100644 (file)
@@ -2,23 +2,62 @@ class Pettanr.Views.PanelPicture.NewElementLauncher extends Editor.EditorModule.
   \r
   initialize: (options) ->\r
     super(options)\r
-    @links_conf = {\r
-      resource_picture: {\r
-        caption: 'Resource Picture',\r
+    @links_conf = {}\r
+    _.extend(@links_conf, {\r
+      users: {\r
+        caption: "User's",\r
         params: {\r
           controller: @model.pick_model().path_name(), action: 'index',\r
           page_size: 6, format: 'html'\r
         }\r
       }\r
-    }\r
+    })\r
+    if Pettanr.cache.operators.artist\r
+      _.extend(@links_conf, {\r
+        mine: {\r
+          caption: 'Mine',\r
+          params: {\r
+            controller: @model.pick_model().path_name(), action: 'by_artist', id: Pettanr.cache.operators.artist.get('id'), \r
+            page_size: 6, format: 'html'\r
+          }\r
+        }\r
+      })\r
+    _.extend(@links_conf, {\r
+      inspire_recent: {\r
+        caption: "Inspire recent item",\r
+        params: {\r
+          controller: @model.path_name(), action: 'index',\r
+          page_size: 6, format: 'html'\r
+        }\r
+      }\r
+    })\r
+    if Pettanr.cache.operators.author\r
+      _.extend(@links_conf, {\r
+        inspire_my_recent: {\r
+          caption: 'Inspire my recent item',\r
+          params: {\r
+            controller: @model.path_name(), action: 'by_author', id: Pettanr.cache.operators.author.get('id'), \r
+            page_size: 6, format: 'html'\r
+          }\r
+        }\r
+      })\r
   \r
   render: () ->\r
     super()\r
     @add_links()\r
     this\r
   \r
-  click_resource_picture: () ->\r
-    @click_default(@links_conf.resource_picture.params)\r
+  click_users: () ->\r
+    @click_default(@links_conf.users.params)\r
+  \r
+  click_mine: () ->\r
+    @click_default(@links_conf.mine.params)\r
+  \r
+  click_inspire_recent: () ->\r
+    @click_default(@links_conf.inspire_recent.params)\r
+  \r
+  click_inspire_my_recent: () ->\r
+    @click_default(@links_conf.inspire_my_recent.params)\r
   \r
 class Pettanr.Views.PanelPicture.NewElement extends Backbone.View\r
   \r
index 41ccba2..5ef8ee2 100644 (file)
@@ -2,23 +2,49 @@ class Pettanr.Views.SpeechBalloon.NewElementLauncher extends Editor.EditorModule
   \r
   initialize: (options) ->\r
     super(options)\r
-    @links_conf = {\r
-      speech_balloon_template: {\r
-        caption: 'Speech Balloon Template',\r
+    @links_conf = {}\r
+    _.extend(@links_conf, {\r
+      template: {\r
+        caption: 'Template',\r
         params: {\r
           controller: @model.pick_model().path_name(), action: 'index',\r
           page_size: 6, format: 'html'\r
         }\r
       }\r
-    }\r
+    })\r
+    _.extend(@links_conf, {\r
+      inspire_recent: {\r
+        caption: "Inspire recent item",\r
+        params: {\r
+          controller: @model.path_name(), action: 'index',\r
+          page_size: 6, format: 'html'\r
+        }\r
+      }\r
+    })\r
+    if Pettanr.cache.operators.author\r
+      _.extend(@links_conf, {\r
+        inspire_my_recent: {\r
+          caption: 'Inspire my recent item',\r
+          params: {\r
+            controller: @model.path_name(), action: 'by_author', id: Pettanr.cache.operators.author.get('id'), \r
+            page_size: 6, format: 'html'\r
+          }\r
+        }\r
+      })\r
   \r
   render: () ->\r
     super()\r
     @add_links()\r
     this\r
   \r
-  click_speech_balloon_template: () ->\r
-    @click_default(@links_conf.speech_balloon_template.params)\r
+  click_template: () ->\r
+    @click_default(@links_conf.template.params)\r
+  \r
+  click_inspire_recent: () ->\r
+    @click_default(@links_conf.inspire_recent.params)\r
+  \r
+  click_inspire_my_recent: () ->\r
+    @click_default(@links_conf.inspire_my_recent.params)\r
   \r
 class Pettanr.Views.SpeechBalloon.NewElement extends Backbone.View\r
   \r
index 3fcc542..3399782 100644 (file)
 //= require ./editor/panel_editor/element/element_board
 //= require ./editor/panel_editor/element/new_board
 //= require ./editor/panel_editor/scenario
+//= require ./editor/panel_editor/scenario/elements
+//= require ./editor/panel_editor/scenario/element
 //= require ./i18n/translations
 //= require_directory ./controllers
 //= require_directory ./models
index 3a7303a..8a3c5ba 100644 (file)
@@ -341,6 +341,14 @@ font-family : monospace;
 .new-element-buttons div {
   clear: both;
 }
+.new-element-buttons h3 {
+  margin-top: 6px;
+  margin-bottom: 6px;
+}
+.new-element-buttons span {
+  margin: 3px;
+  margin-right: 8px;
+}
 ul.scenarios_elements {
   list-style-type: none;
   padding: 0;