diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-07-27 16:03:32 +0200 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-07-27 16:03:32 +0200 |
| commit | 0d9150bfa0b62c2a623849d4e4f96c59d239fb89 (patch) | |
| tree | d65e717f10be14637f131d3b1c344acb6edcb043 /addons/base/static/src | |
| parent | f93d975835e5e50fb8a572e8512768ea5c1435b8 (diff) | |
[fix] added save of o2m when using pager & when switching view
bzr revid: nicolas.vanhoren@openerp.com-20110727140332-p1blww1imh3irn6u
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/js/form.js | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 4645a88d665..c19e611e42a 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1642,10 +1642,16 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ controller.on_record_loaded.add_last(function() { once.resolve(); }); + controller.on_pager_action.add_first(function() { + self.save_form_view(); + }); controller.$element.find(".oe_form_button_save_edit").hide(); } self.is_started.resolve(); }); + this.viewmanager.on_mode_switch.add_first(function() { + self.save_form_view(); + }); setTimeout(function () { self.viewmanager.start(); }, 0); @@ -1762,27 +1768,26 @@ openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ return false; }, is_valid: function() { + this.validate(); + return this._super(); + }, + validate: function() { + this.invalid = false; var self = this; var view = self.viewmanager.views[self.viewmanager.active_view].controller; if (self.viewmanager.active_view === "form") { for (var f in view.fields) { f = view.fields[f]; if (!f.is_valid()) { - return false; + this.invalid = true; + return; } } } - return true; }, is_dirty: function() { - if (!this.dataset) - return false; this.save_form_view(); - if (this.dataset.delete_all || this.dataset.to_create.length > 0 || this.dataset.to_write.length > 0 - || this.dataset.to_delete > 0) { - return true; - } - return false; + return this._super(); }, update_dom: function() { this._super.apply(this, arguments); |
