summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-07-27 16:03:32 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-07-27 16:03:32 +0200
commit0d9150bfa0b62c2a623849d4e4f96c59d239fb89 (patch)
treed65e717f10be14637f131d3b1c344acb6edcb043 /addons/base/static/src
parentf93d975835e5e50fb8a572e8512768ea5c1435b8 (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.js23
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);