summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_form.js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-01-10 15:41:13 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-01-10 15:41:13 +0100
commit3dbb95ec2bb3d49a9ff3d190f5373c6b8b34d9e7 (patch)
tree145809a5a0d784c2f5bea4ce40b32f806768b749 /addons/web/static/src/js/view_form.js
parentf0c294e58423365eb5e7d860d85f81365722a43a (diff)
[imp] refactored a part of form view to use Mutex
bzr revid: nicolas.vanhoren@openerp.com-20120110144113-1x67nu7u9q51g7ny
Diffstat (limited to 'addons/web/static/src/js/view_form.js')
-rw-r--r--addons/web/static/src/js/view_form.js13
1 files changed, 6 insertions, 7 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 0addb6d3b02..cc639a4b027 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -50,8 +50,8 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
_.defaults(this.options, {
"not_interactible_on_create": false
});
- this.mutating_lock = $.Deferred();
- this.initial_mutating_lock = this.mutating_lock;
+ this.is_initialized = $.Deferred();
+ this.mutating_mutex = new $.Mutex();
this.on_change_lock = $.Deferred().resolve();
this.reload_lock = $.Deferred().resolve();
},
@@ -189,7 +189,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
});
}
self.on_form_changed();
- self.initial_mutating_lock.resolve();
+ self.is_initialized.resolve();
self.show_invalid = true;
self.do_update_pager(record.id == null);
if (self.sidebar) {
@@ -419,8 +419,6 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
var self = this;
var action = function() {
try {
- if (!self.initial_mutating_lock.isResolved() && !self.initial_mutating_lock.isRejected())
- return;
var form_invalid = false,
values = {},
first_invalid_field = null;
@@ -466,8 +464,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
return $.Deferred().reject();
}
};
- this.mutating_lock = this.mutating_lock.pipe(action, action);
- return this.mutating_lock;
+ return this.mutating_mutex.exec(function() {
+ return self.is_initialized.pipe(action);
+ });
},
on_invalid: function() {
var msg = "<ul>";