diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-11-06 11:38:28 +0100 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-11-06 11:38:28 +0100 |
| commit | fd2bb078fb297c59b0359816e5cff5a33dbfc1a7 (patch) | |
| tree | d8d6c1266302a842b79a5c7deceefdb592870367 /addons/web/static | |
| parent | 90484f785867fa3f3b1030a221d8e20d1d5f6549 (diff) | |
Fixed problem with editable list
bzr revid: nicolas.vanhoren@openerp.com-20121106103828-uw6xv1ed7wueii71
Diffstat (limited to 'addons/web/static')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list_editable.js | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index f6aea0eb387..dd9d8fe7c09 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3739,7 +3739,7 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({ } // FIXME: why isn't there an API for this? if (this.editor.form.$el.hasClass('oe_form_dirty')) { - this.save_edition(); + this.ensure_saved(); return; } this.cancel_edition(); diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 021e5549c18..85465e1c54e 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -12,6 +12,8 @@ openerp.web.list_editable = function (instance) { var self = this; this._super.apply(this, arguments); + this.saving_mutex = new $.Mutex(); + this._force_editability = null; this._context_editable = false; this.editor = this.make_editor(); @@ -162,10 +164,13 @@ openerp.web.list_editable = function (instance) { * @returns {$.Deferred} */ ensure_saved: function () { - if (!this.editor.is_editing()) { - return $.when(); - } - return this.save_edition(); + var self = this; + return this.saving_mutex.exec(function() { + if (!self.editor.is_editing()) { + return $.when(); + } + return self.save_edition(); + }); }, /** * Set up the edition of a record of the list view "inline" |
