OSDN Git Service

fix move panel detail after update
authoryasushiito <yas@pen-chan.jp>
Fri, 23 Jan 2015 10:00:08 +0000 (19:00 +0900)
committeryasushiito <yas@pen-chan.jp>
Fri, 23 Jan 2015 10:00:08 +0000 (19:00 +0900)
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/models/panel.js.coffee
app/assets/javascripts/peta/element_nestable_content.js.coffee
app/controllers/application_controller.rb
app/controllers/panels_controller.rb

index 39d306a..826a53f 100644 (file)
@@ -73,11 +73,12 @@ class Editor.PanelEditor extends Backbone.View
     window.editor = null  # release editor\r
   \r
   put: () ->\r
-    if @dock.save()\r
+    success = (data, textStatus) =>\r
       window.editor = null  # release editor\r
       @dock.valid()\r
-    else\r
+    error = (data, textStatus) =>\r
       @dock.invalid()\r
+    @dock.save({success: success, error: error})\r
     false\r
   \r
   root_item: () ->\r
index 75fdfe3..0faeb8a 100644 (file)
@@ -71,9 +71,9 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
     @trigger('put')\r
     false\r
   \r
-  save: () ->\r
+  save: (options) ->\r
     attrs = @save_data()\r
-    @root_bay.body.form.save(attrs)\r
+    @root_bay.body.form.save(attrs, options)\r
   \r
   save_data: () ->\r
     attrs = @root_bay.save_data()\r
@@ -104,7 +104,7 @@ class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.Editor
       form_name: @root_item().item_name(), \r
       item: @root_item(), \r
       mounted: @mounted(), \r
-      submit: 'default', \r
+      submit: 'default' \r
       operators: @dock().editor().operators,\r
       action: '/' + @root_item().table_name() + '/' + Pettanr.to_s(@root_item().get('id'))\r
     })\r
index 5c91ac9..a61f467 100644 (file)
@@ -153,9 +153,9 @@ class Locmare.Form extends Locmare.FormBase
     else\r
       @invalid()\r
   \r
-  save: (attrs = null) ->\r
+  save: (attrs = null, options = null) ->\r
     if attrs\r
-      @item.save(attrs)\r
+      @item.save_with_elements(attrs, options)\r
     else\r
       @item.save()\r
   \r
index c684728..745944d 100644 (file)
@@ -52,6 +52,15 @@ class Pettanr.Panel extends Peta.Root
       r[pid] = elm.picture() if not r[pid]\r
     r\r
   \r
+  save_with_elements: (attrs, options = {}) ->\r
+    options.attrs = {panel: attrs}\r
+    method = if @isNew()\r
+      'create'\r
+    else\r
+      'update'\r
+    xhr = @sync(method, this, options)\r
+    xhr\r
+  \r
   initialize: (attr = {}, options = {}) ->\r
     @set(attr)\r
     if @get('id')\r
index 8ffd52d..ca8f905 100644 (file)
@@ -6,12 +6,12 @@ class Peta.ElementNestableContent extends Peta.Content
   elements_items: () ->\r
     r = _.map @my_class().child_models(), (element_model) =>\r
       @element_items(element_model)\r
-    _.flatten(r)\r
+    _.compact(_.flatten(r))\r
   \r
   boosts: (level) ->\r
     super(level)\r
     _.each @elements_items(), (item) =>\r
-      item.boosts(level)\r
+      item.boosts(level) if item\r
   \r
   get: (name) ->\r
     val = super(name)\r
index ac59ebf..f7ca6ea 100644 (file)
@@ -298,7 +298,7 @@ class ApplicationController < ActionController::Base
   
   def updated_json_format format
     format.json {
-      head :ok
+      render json: '{}', status: :ok
     }
   end
   
@@ -366,7 +366,7 @@ class ApplicationController < ActionController::Base
   
   def destroyed_json_format format
     format.json {
-      head :ok
+      render json: '{}', status: :ok
     }
   end
   
index 6c9e438..c792acd 100644 (file)
@@ -131,6 +131,7 @@ class PanelsController < ApplicationController
     @item = Panel.edit(params[:id], @operators)
     @item.boosts 'post'
     jsn = nil
+    p params[:json]
     if params[:json]
       jsn = JSON.parse(params[:json])
     end
@@ -143,7 +144,6 @@ class PanelsController < ApplicationController
         updated_html_format format
         updated_json_format format
       else
-      p @item.errors
         format.html {
           flash[:notice] = I18n.t('flash.notice.not_updated', :model => @my_model_class.model_name.human)
           @editor = Editor::PanelEditor.new @item, @operators