summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/backend
diff options
context:
space:
mode:
authorVincent Schippefilt <vsc@odoo.com>2019-03-06 14:02:33 +0100
committerAaron Bohy <aab@odoo.com>2019-03-06 20:07:17 +0100
commit2e8222dee737215cbad0dd3556d6ec0ffe60bf00 (patch)
tree83cf89fa39aa53a86ef044c661b5ed5c52231446 /addons/web_editor/static/src/js/backend
parenta3dfd04ad670b425df4d36ff714a4d4e260ff5a9 (diff)
[REF] web_editor: adapt code after jQuery update
Part of task 1896658 Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Christophe Matthieu <chm@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com> Co-authored-by: Martin Geubelle <mge@odoo.com> Co-authored-by: svs-odoo <svs@odoo.com> Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
Diffstat (limited to 'addons/web_editor/static/src/js/backend')
-rw-r--r--addons/web_editor/static/src/js/backend/field_html.js40
1 files changed, 22 insertions, 18 deletions
diff --git a/addons/web_editor/static/src/js/backend/field_html.js b/addons/web_editor/static/src/js/backend/field_html.js
index f1dc4a8fccc..185d0c84963 100644
--- a/addons/web_editor/static/src/js/backend/field_html.js
+++ b/addons/web_editor/static/src/js/backend/field_html.js
@@ -6,10 +6,12 @@ var basic_fields = require('web.basic_fields');
var core = require('web.core');
var Wysiwyg = require('web_editor.wysiwyg.root');
var field_registry = require('web.field_registry');
+// must wait for web/ to add the default html widget, otherwise it would override the web_editor one
+require('web._field_registry');
var TranslatableFieldMixin = basic_fields.TranslatableFieldMixin;
var QWeb = core.qweb;
-var assetsLoaded = false;
+var assetsLoaded;
/**
* FieldHtml Widget
@@ -39,24 +41,24 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
* @override
*/
willStart: function () {
+ var self = this;
this._onUpdateIframeId = 'onLoad_' + _.uniqueId('FieldHtml');
- var defAsset = null;
+ var defAsset;
if (this.nodeOptions.cssReadonly) {
defAsset = ajax.loadAsset(this.nodeOptions.cssReadonly);
}
if (!assetsLoaded) { // avoid flickering when begin to edit
- assetsLoaded = $.Deferred();
- var wysiwyg = new Wysiwyg(this, {});
- wysiwyg.attachTo($('<textarea>')).then(function () {
- wysiwyg.destroy();
- var def = assetsLoaded;
- assetsLoaded = true;
- def.resolve();
+ assetsLoaded = new Promise(function (resolve) {
+ var wysiwyg = new Wysiwyg(self, {});
+ wysiwyg.attachTo($('<textarea>')).then(function () {
+ wysiwyg.destroy();
+ resolve();
+ });
});
}
- return $.when(this._super(), assetsLoaded, defAsset);
+ return Promise.all([this._super(), assetsLoaded, defAsset]);
},
/**
* @override
@@ -95,8 +97,8 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
return this._super();
}
var _super = this._super.bind(this);
- return this.wysiwyg.save().then(function (isDirty, html) {
- self._isDirty = isDirty;
+ return this.wysiwyg.save().then(function (result) {
+ self._isDirty = result.isDirty;
_super();
});
},
@@ -131,7 +133,7 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
this.$content.html(value);
}
}
- return $.when();
+ return Promise.resolve();
},
//--------------------------------------------------------------------------
@@ -268,8 +270,10 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
}
this.$el.empty();
-
- var def = $.Deferred();
+ var resolver;
+ var def = new Promise(function (resolve) {
+ resolver = resolve;
+ });
if (this.nodeOptions.cssReadonly) {
this.$iframe = $('<iframe class="o_readonly"/>');
this.$iframe.appendTo(this.$el);
@@ -278,14 +282,14 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
// inject content in iframe
- this.$iframe.data('load-def', def); // for unit test
+ this.$iframe.data('loadDef', def); // for unit test
window.top[this._onUpdateIframeId] = function (_avoidDoubleLoad) {
if (_avoidDoubleLoad !== avoidDoubleLoad) {
console.warn('Wysiwyg iframe double load detected');
return;
}
self.$content = $('#iframe_target', self.$iframe[0].contentWindow.document.body);
- def.resolve();
+ resolver();
};
this.$iframe.one('load', function onLoad() {
@@ -326,7 +330,7 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
} else {
this.$content = $('<div class="o_readonly"/>').html(value);
this.$content.appendTo(this.$el);
- def.resolve();
+ resolver();
}
def.then(function () {