summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/backend
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web_editor/static/src/js/backend')
-rw-r--r--addons/web_editor/static/src/js/backend/convert_inline.js3
-rw-r--r--addons/web_editor/static/src/js/backend/field_html.js27
2 files changed, 23 insertions, 7 deletions
diff --git a/addons/web_editor/static/src/js/backend/convert_inline.js b/addons/web_editor/static/src/js/backend/convert_inline.js
index 3b09bef5f31..b6b36a388ef 100644
--- a/addons/web_editor/static/src/js/backend/convert_inline.js
+++ b/addons/web_editor/static/src/js/backend/convert_inline.js
@@ -1,7 +1,6 @@
odoo.define('web_editor.convertInline', function (require) {
'use strict';
-var fonts = require('wysiwyg.fonts');
var FieldHtml = require('web_editor.field.html');
/**
@@ -189,6 +188,8 @@ function getMatchedCSSRules(a) {
* converted to images
*/
function fontToImg($editable) {
+ var fonts = odoo.__DEBUG__.services["wysiwyg.fonts"];
+
$editable.find('.fa').each(function () {
var $font = $(this);
var icon, content;
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 69e32fb815e..b78fcc1d35f 100644
--- a/addons/web_editor/static/src/js/backend/field_html.js
+++ b/addons/web_editor/static/src/js/backend/field_html.js
@@ -4,12 +4,12 @@ odoo.define('web_editor.field.html', function (require) {
var ajax = require('web.ajax');
var basic_fields = require('web.basic_fields');
var core = require('web.core');
-var Wysiwyg = require('web_editor.wysiwyg');
+var Wysiwyg = require('web_editor.wysiwyg.root');
var field_registry = require('web.field_registry');
var TranslatableFieldMixin = basic_fields.TranslatableFieldMixin;
-
var QWeb = core.qweb;
+var assetsLoaded = false;
/**
* FieldHtml Widget
@@ -40,8 +40,23 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
*/
willStart: function () {
this._onUpdateIframeId = 'onLoad_' + _.uniqueId('FieldHtml');
- var defAsset = this.nodeOptions.cssReadonly && ajax.loadAsset(this.nodeOptions.cssReadonly);
- return $.when(this._super().then(Wysiwyg.prepare.bind(Wysiwyg, this)), defAsset);
+ var defAsset = null;
+ 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();
+ });
+ }
+
+ return $.when(this._super(), assetsLoaded, defAsset);
},
/**
* @override
@@ -147,7 +162,7 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
// by default this is synchronous because the assets are already loaded in willStart
// but it can be async in the case of options such as iframe, snippets...
return this.wysiwyg.attachTo(this.$target).then(function () {
- self.$content = self.wysiwyg.$el;
+ self.$content = self.wysiwyg.$editor;
self._onLoadWysiwyg();
});
},
@@ -444,7 +459,7 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, {
position: 'absolute',
right: '+5px',
});
- var $toolbar = this.$content.closest('.note-editor').find('.note-toolbar');
+ var $toolbar = this.$content.find('.note-toolbar');
$toolbar.css('position', 'relative');
$toolbar.append($button);
},