diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-02-04 13:27:22 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-02-04 13:27:22 +0100 |
| commit | 4400cce8201579fc9769b5e2d33829b43bce82d9 (patch) | |
| tree | c507c7dca21bfb0c3bdca8ba57e63a6ab16f230c /addons/web_editor/static/src/js/common/ace.js | |
| parent | ceb05489303dee728c3960a87bf23795efc374c4 (diff) | |
| parent | 4524ad06a8af82ab337fc5aa1d5aa8d8d3024923 (diff) | |
[MERGE] forward port branch saas-12.1 up to 4524ad06a8a
Diffstat (limited to 'addons/web_editor/static/src/js/common/ace.js')
| -rw-r--r-- | addons/web_editor/static/src/js/common/ace.js | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/addons/web_editor/static/src/js/common/ace.js b/addons/web_editor/static/src/js/common/ace.js index 2379a938d1f..6216633e424 100644 --- a/addons/web_editor/static/src/js/common/ace.js +++ b/addons/web_editor/static/src/js/common/ace.js @@ -2,6 +2,7 @@ odoo.define('web_editor.ace', function (require) { 'use strict'; var ajax = require('web.ajax'); +var concurrency = require('web.concurrency'); var core = require('web.core'); var Dialog = require('web.Dialog'); var Widget = require('web.Widget'); @@ -360,7 +361,7 @@ var ViewEditor = Widget.extend({ this.aceEditor.setSession(editingSession); if (this.currentType === 'xml') { - this.$viewID.text(_.str.sprintf(_t("Template ID: %s"), this.views[resID].xml_id)); + this.$viewID.text(_.str.sprintf(_t("Template ID: %s"), this.views[resID].key)); } else { this.$viewID.text(_.str.sprintf(_t("SCSS file: %s"), resID)); } @@ -537,6 +538,7 @@ var ViewEditor = Widget.extend({ * error occured. */ _saveResources: function () { + var self = this; var toSave = {}; var errorFound = false; _.each(this.editingSessions, (function (editingSessions, type) { @@ -564,8 +566,15 @@ var ViewEditor = Widget.extend({ if (errorFound) return $.Deferred().reject(errorFound); var defs = []; + var mutex = new concurrency.Mutex(); _.each(toSave, (function (_toSave, type) { - defs = defs.concat(_.map(_toSave, (type === 'xml' ? this._saveView : this._saveSCSS).bind(this))); + // Child views first as COW on a parent would delete them + _toSave = _.sortBy(_toSave, 'id').reverse(); + _.each(_toSave, function (session) { + defs.push(mutex.exec(function () { + return (type === 'xml' ? self._saveView(session) : self._saveSCSS(session)); + })); + }); }).bind(this)); return $.when.apply($, defs).fail((function (session, error) { |
