From: yasushiito Date: Thu, 22 Jan 2015 08:13:39 +0000 (+0900) Subject: fix new element dialog X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=commitdiff_plain;h=091b085aa054691dfe37d6f55f699dcb80f63ee5 fix new element dialog --- 091b085aa054691dfe37d6f55f699dcb80f63ee5 diff --cc app/assets/javascripts/editor/panel_editor.js.coffee index 2d48fd5f,a47fab55..39d306a8 --- a/app/assets/javascripts/editor/panel_editor.js.coffee +++ b/app/assets/javascripts/editor/panel_editor.js.coffee @@@ -67,9 -67,9 +68,17 @@@ class Editor.PanelEditor extends Backbo #$(trace + 'width').val(w) #$(trace + 'height').val(h) + quit: () -> + @dialog.$el.dialog('destroy') - window.editor = null # enable leave cancel flag on unsave ++ window.editor = null # release editor ++ + put: () -> - attrs = @dock.save_data() ++ if @dock.save() ++ window.editor = null # release editor ++ @dock.valid() ++ else ++ @dock.invalid() + false root_item: () -> @panel diff --cc app/assets/javascripts/editor/panel_editor/dock.js.coffee index 375c8887,75bb0f60..75fdfe38 --- a/app/assets/javascripts/editor/panel_editor/dock.js.coffee +++ b/app/assets/javascripts/editor/panel_editor/dock.js.coffee @@@ -66,6 -67,15 +67,25 @@@ class Editor.PanelEditor.Dock extends E dom_labels_class: () -> @dom_class() + '-labels' + put: () -> + @trigger('put') + false + ++ save: () -> ++ attrs = @save_data() ++ @root_bay.body.form.save(attrs) ++ + save_data: () -> + attrs = @root_bay.save_data() + _.extend(attrs, @element_bay.save_data()) + attrs + ++ valid: () -> ++ @root_bay.body.form.valid() ++ ++ invalid: () -> ++ @root_bay.body.form.invalid() ++ class Editor.EditorModule.DockModule.RootBay extends Editor.EditorModule.DockModule.SimpleBay render: () -> diff --cc app/assets/javascripts/locmare/form.js.coffee index ff8c05e3,aa77ed3a..5c91ac9a --- a/app/assets/javascripts/locmare/form.js.coffee +++ b/app/assets/javascripts/locmare/form.js.coffee @@@ -140,11 -148,28 +148,39 @@@ class Locmare.Form extends Locmare.Form _.each @fields, (field) => @item.set(field.field_name, field.val()) @item.overwrite({operators: @operators}) - if @item.save() - attrs = @make_attrs() - if @item.save(attrs) -- window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true) -- return false ++ if @save() ++ @valid() else -- alert('invalid') ++ @invalid() ++ ++ save: (attrs = null) -> ++ if attrs ++ @item.save(attrs) ++ else ++ @item.save() ++ ++ valid: () -> ++ window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true) ++ return false ++ ++ invalid: () -> ++ alert('invalid') + + save_data: () -> + @item.my_class().child_models() + attrs = {} + _.each @fields, (field) => + attrs[field.field_name] = @item.get(field.field_name) + _.each @child_forms, (child_form, name) => + mm = @item.my_class().my_manifest() + em = child_form.item.my_class().my_manifest() + if mm.associations.is_has_one(em) + attrs[name + '_attributes'] = child_form.save_data() + else + attrs[name + '_attributes'] = [] + _.each child_form, (form) => + attrs[name + '_attributes'].push(form.save_data()) + attrs class Locmare.ExtendForm extends Locmare.FormBase tagName: 'div' diff --cc app/assets/javascripts/locmare/form/field/tag/number.js.coffee index 66646ad8,66646ad8..a707cef0 --- a/app/assets/javascripts/locmare/form/field/tag/number.js.coffee +++ b/app/assets/javascripts/locmare/form/field/tag/number.js.coffee @@@ -21,3 -21,3 +21,6 @@@ class Locmare.FormModule.FieldModule.Ta @field.helpers.refresh() @field.trigger('change') ++ val: () -> ++ parseInt(super) ++ diff --cc app/controllers/panels_controller.rb index 376c68cc,376c68cc..6c9e4389 --- a/app/controllers/panels_controller.rb +++ b/app/controllers/panels_controller.rb @@@ -143,6 -143,6 +143,7 @@@ class PanelsController < ApplicationCon 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