diff --git a/addons/mass_mailing/static/src/js/mass_mailing_widget.js b/addons/mass_mailing/static/src/js/mass_mailing_widget.js index e87c6a11f70..142a88360f0 100644 --- a/addons/mass_mailing/static/src/js/mass_mailing_widget.js +++ b/addons/mass_mailing/static/src/js/mass_mailing_widget.js @@ -45,6 +45,9 @@ var MassMailingFieldHtml = FieldHtml.extend({ var self = this; var fieldName = this.nodeOptions['inline-field']; + if (this.mode == "readonly") { + return this._super(); + } if (this.$content.find('.o_basic_theme').length) { this.$content.find('*').css('font-family', ''); } diff --git a/addons/mass_mailing/static/tests/mass_mailing_html_tests.js b/addons/mass_mailing/static/tests/mass_mailing_html_tests.js index 0657278ec16..f1b58acb0f4 100644 --- a/addons/mass_mailing/static/tests/mass_mailing_html_tests.js +++ b/addons/mass_mailing/static/tests/mass_mailing_html_tests.js @@ -3,6 +3,8 @@ odoo.define('mass_mailing.field_html_tests', function (require) { var ajax = require('web.ajax'); var FormView = require('web.FormView'); +var FieldHtml = require('web_editor.field.html'); +var MassMailingFieldHtml = require('mass_mailing.FieldHtml'); var testUtils = require('web.test_utils'); var weTestUtils = require('web_editor.test_utils'); var Wysiwyg = require('web_editor.wysiwyg'); @@ -133,6 +135,65 @@ QUnit.test('save arch and html', function (assert) { }); }); +QUnit.test('save and edit arch wysiwyg', function (assert) { + var done = assert.async(); + assert.expect(4); + + testUtils.mock.patch(FieldHtml, { + commitChanges: function () { + assert.step("FieldHtml"); + return this._super.apply(this, arguments); + }, + }); + + testUtils.mock.patch(MassMailingFieldHtml, { + commitChanges: function () { + assert.step("MassMailingFieldHtml"); + return this._super.apply(this, arguments); + }, + }); + + testUtils.createAsyncView({ + View: FormView, + model: 'mail.mass_mailing', + data: this.data, + arch: '
' + + '
'+ + '
'+ + ' '+ + '', + res_id: 1, + intercepts: { + execute_action: function (event) { + event.data.on_success(); + } + }, + }).then(function (form) { + testUtils.dom.click($('[name=put_in_queue]')) + testUtils.form.clickEdit(form) + var $fieldEdit = form.$('.oe_form_field[name="body_arch"]'); + var $iframe = $fieldEdit.find('iframe'); + + $iframe.data('load-def').then(function () { + testUtils.dom.click($('[name=put_in_queue]')) + assert.verifySteps(["MassMailingFieldHtml", "FieldHtml", "MassMailingFieldHtml"]); + testUtils.mock.unpatch(FieldHtml); + testUtils.mock.unpatch(MassMailingFieldHtml); + + form.destroy(); + done(); + }); + + }); +}); + }); }); }); 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 b6b36a388ef..71ef948b1f7 100644 --- a/addons/web_editor/static/src/js/backend/convert_inline.js +++ b/addons/web_editor/static/src/js/backend/convert_inline.js @@ -396,9 +396,6 @@ FieldHtml.include({ * @override */ commitChanges: function () { - if (!this.wysiwyg) { - return this._super(); - } if (this.nodeOptions['style-inline']) { this._toInline(); } 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 b78fcc1d35f..f1dc4a8fccc 100644 --- a/addons/web_editor/static/src/js/backend/field_html.js +++ b/addons/web_editor/static/src/js/backend/field_html.js @@ -91,7 +91,7 @@ var FieldHtml = basic_fields.DebouncedField.extend(TranslatableFieldMixin, { */ commitChanges: function () { var self = this; - if (!this.wysiwyg) { + if (this.mode == "readonly") { return this._super(); } var _super = this._super.bind(this);