diff options
| author | Vincent Schippefilt <vsc@odoo.com> | 2019-03-06 14:02:33 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2019-03-06 20:07:17 +0100 |
| commit | 2e8222dee737215cbad0dd3556d6ec0ffe60bf00 (patch) | |
| tree | 83cf89fa39aa53a86ef044c661b5ed5c52231446 /addons/web_editor/static/src/js/backend | |
| parent | a3dfd04ad670b425df4d36ff714a4d4e260ff5a9 (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.js | 40 |
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 () { |
