rb = new Tag.RowBreak()\r
this.$el.append(rb.render().el)\r
this.$el.tabs()\r
+ window.editor = this # enable leave cancel flag on unsave\r
this\r
\r
panel_resize: () ->\r
#$(trace + 'width').val(w)\r
#$(trace + 'height').val(h)\r
\r
+ quit: () ->\r
+ @dialog.$el.dialog('destroy')\r
+ window.editor = null # release editor\r
+ \r
put: () ->\r
- attrs = @dock.save_data()\r
+ if @dock.save()\r
+ window.editor = null # release editor\r
+ @dock.valid()\r
+ else\r
+ @dock.invalid()\r
false\r
\r
root_item: () ->\r
@trigger('put')\r
false\r
\r
+ save: () ->\r
+ attrs = @save_data()\r
+ @root_bay.body.form.save(attrs)\r
+ \r
save_data: () ->\r
attrs = @root_bay.save_data()\r
_.extend(attrs, @element_bay.save_data())\r
attrs\r
\r
+ valid: () ->\r
+ @root_bay.body.form.valid()\r
+ \r
+ invalid: () ->\r
+ @root_bay.body.form.invalid()\r
+ \r
class Editor.EditorModule.DockModule.RootBay extends Editor.EditorModule.DockModule.SimpleBay\r
\r
render: () ->\r
_.each @fields, (field) =>\r
@item.set(field.field_name, field.val())\r
@item.overwrite({operators: @operators})\r
- attrs = @make_attrs()\r
- if @item.save(attrs)\r
- window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
- return false\r
+ if @save()\r
+ @valid()\r
else\r
- alert('invalid')\r
+ @invalid()\r
+ \r
+ save: (attrs = null) ->\r
+ if attrs\r
+ @item.save(attrs)\r
+ else\r
+ @item.save()\r
+ \r
+ valid: () ->\r
+ window.router.navigate('/' + @item.table_name() + '/' + Pettanr.to_s(@item.get('id')), true)\r
+ return false\r
+ \r
+ invalid: () ->\r
+ alert('invalid')\r
\r
save_data: () ->\r
@item.my_class().child_models()\r
@field.helpers.refresh()\r
@field.trigger('change')\r
\r
+ val: () ->\r
+ parseInt(super)\r
+ \r
r = new Pettanr.UsersController()\r
r.index()\r
\r
+ navigate: (fragment, options) ->\r
+ if window.editor\r
+ if confirm('leave? edit data unsaved')\r
+ window.editor.quit()\r
+ super(fragment, options)\r
+ else\r
+ false\r
+ else\r
+ super(fragment, options)\r
+ \r
hoge: () ->\r
names = _.map Manifest.manifest().controllers, (controller_manifest, controller_name) ->\r
c = Pettanr[Pettanr.camelize(controller_name) + 'Controller']\r
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