diff options
| author | Fabien Meghazi <fme@openerp.com> | 2013-07-03 14:01:14 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2013-07-03 14:01:14 +0200 |
| commit | 17536f7a1576a15628a4bc378f96fd81877a89d3 (patch) | |
| tree | 6be5b59192f3629002f1a1cdbe804969d89892bb /addons/website/static/src | |
| parent | d7a782a8842398403a987e43c6513083673ca451 (diff) | |
[FIX] concurrency save
bzr revid: fme@openerp.com-20130703120114-js4vbbtwgettn9th
Diffstat (limited to 'addons/website/static/src')
| -rw-r--r-- | addons/website/static/src/js/website.js | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index 3e7ad76bd8a..2362be58285 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -11,6 +11,7 @@ instance.website.EditorBar = instance.web.Widget.extend({ container: 'body', start: function() { var self = this; + this.saving_mutex = new $.Mutex(); self.$('button[data-action]').prop('disabled', true); self.$('button[data-action=edit],button[data-action=snippet]').prop('disabled', false); self.snippet_start(); @@ -33,16 +34,13 @@ instance.website.EditorBar = instance.web.Widget.extend({ }); }, save: function () { - var sleep = function (timeout) { - deferred = new $.Deferred(); - setTimeout(deferred.resolve, timeout); - return deferred.promise(); - } var self = this; var defs = []; $('.oe_dirty').each(function (i, v) { var $el = $(this); - var def = sleep(i*100).then(function () { + // TODO: Add a queue with concurrency limit in webclient + // https://github.com/medikoo/deferred/blob/master/lib/ext/function/gate.js + var def = self.saving_mutex.exec(function () { return self.saveElement($el).then(function () { $el.removeClass('oe_dirty'); }).fail(function () { @@ -50,7 +48,6 @@ instance.website.EditorBar = instance.web.Widget.extend({ console.error(_.str.sprintf('Could not save %s#%d#%s', data.oeModel, data.oeId, data.oeField)); }); }); - defs.push(def); }); return $.when.apply(null, defs).then(function () { |
