From 4f504765fae85fcde2a5a957f0a84573530a64f8 Mon Sep 17 00:00:00 2001 From: yasushiito Date: Fri, 23 Jan 2015 19:00:08 +0900 Subject: [PATCH] fix move panel detail after update --- app/assets/javascripts/editor/panel_editor.js.coffee | 5 +++-- app/assets/javascripts/editor/panel_editor/dock.js.coffee | 6 +++--- app/assets/javascripts/locmare/form.js.coffee | 4 ++-- app/assets/javascripts/models/panel.js.coffee | 9 +++++++++ app/assets/javascripts/peta/element_nestable_content.js.coffee | 4 ++-- app/controllers/application_controller.rb | 4 ++-- app/controllers/panels_controller.rb | 2 +- 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/editor/panel_editor.js.coffee b/app/assets/javascripts/editor/panel_editor.js.coffee index 39d306a8..826a53f6 100644 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@ -73,11 +73,12 @@ class Editor.PanelEditor extends Backbone.View window.editor = null # release editor put: () -> - if @dock.save() + success = (data, textStatus) => window.editor = null # release editor @dock.valid() - else + error = (data, textStatus) => @dock.invalid() + @dock.save({success: success, error: error}) false root_item: () -> diff --git a/app/assets/javascripts/editor/panel_editor/dock.js.coffee b/app/assets/javascripts/editor/panel_editor/dock.js.coffee index 75fdfe38..0faeb8a9 100644 --- a/app/assets/javascripts/editor/panel_editor/dock.js.coffee +++ b/app/assets/javascripts/editor/panel_editor/dock.js.coffee @@ -71,9 +71,9 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase @trigger('put') false - save: () -> + save: (options) -> attrs = @save_data() - @root_bay.body.form.save(attrs) + @root_bay.body.form.save(attrs, options) save_data: () -> attrs = @root_bay.save_data() @@ -104,7 +104,7 @@ class Editor.EditorModule.DockModule.TabModule.RootBayBody extends Editor.Editor form_name: @root_item().item_name(), item: @root_item(), mounted: @mounted(), - submit: 'default', + submit: 'default' operators: @dock().editor().operators, action: '/' + @root_item().table_name() + '/' + Pettanr.to_s(@root_item().get('id')) }) diff --git a/app/assets/javascripts/locmare/form.js.coffee b/app/assets/javascripts/locmare/form.js.coffee index 5c91ac9a..a61f4675 100644 --- a/app/assets/javascripts/locmare/form.js.coffee +++ b/app/assets/javascripts/locmare/form.js.coffee @@ -153,9 +153,9 @@ class Locmare.Form extends Locmare.FormBase else @invalid() - save: (attrs = null) -> + save: (attrs = null, options = null) -> if attrs - @item.save(attrs) + @item.save_with_elements(attrs, options) else @item.save() diff --git a/app/assets/javascripts/models/panel.js.coffee b/app/assets/javascripts/models/panel.js.coffee index c6847289..745944dc 100644 --- a/app/assets/javascripts/models/panel.js.coffee +++ b/app/assets/javascripts/models/panel.js.coffee @@ -52,6 +52,15 @@ class Pettanr.Panel extends Peta.Root r[pid] = elm.picture() if not r[pid] r + save_with_elements: (attrs, options = {}) -> + options.attrs = {panel: attrs} + method = if @isNew() + 'create' + else + 'update' + xhr = @sync(method, this, options) + xhr + initialize: (attr = {}, options = {}) -> @set(attr) if @get('id') diff --git a/app/assets/javascripts/peta/element_nestable_content.js.coffee b/app/assets/javascripts/peta/element_nestable_content.js.coffee index 8ffd52db..ca8f9058 100644 --- a/app/assets/javascripts/peta/element_nestable_content.js.coffee +++ b/app/assets/javascripts/peta/element_nestable_content.js.coffee @@ -6,12 +6,12 @@ class Peta.ElementNestableContent extends Peta.Content elements_items: () -> r = _.map @my_class().child_models(), (element_model) => @element_items(element_model) - _.flatten(r) + _.compact(_.flatten(r)) boosts: (level) -> super(level) _.each @elements_items(), (item) => - item.boosts(level) + item.boosts(level) if item get: (name) -> val = super(name) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ac59ebfe..f7ca6ea4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -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 diff --git a/app/controllers/panels_controller.rb b/app/controllers/panels_controller.rb index 6c9e4389..c792acd0 100644 --- a/app/controllers/panels_controller.rb +++ b/app/controllers/panels_controller.rb @@ -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 -- 2.11.0