From 168a1ea6e5f2f694cd68763fa08cdb3f9f70dc24 Mon Sep 17 00:00:00 2001 From: yuri Date: Mon, 19 Nov 2018 11:20:46 +0200 Subject: [PATCH] email compose: restore last html value --- client/src/views/fields/wysiwyg.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/client/src/views/fields/wysiwyg.js b/client/src/views/fields/wysiwyg.js index 7af8ce25e9..207338c4c5 100644 --- a/client/src/views/fields/wysiwyg.js +++ b/client/src/views/fields/wysiwyg.js @@ -91,14 +91,18 @@ Espo.define('views/fields/wysiwyg', ['views/fields/text', 'lib!Summernote'], fun } } - this.listenTo(this.model, 'change:isHtml', function (model) { - if (this.mode == 'edit') { + this.listenTo(this.model, 'change:isHtml', function (model, value, o) { + if (o.ui && this.mode == 'edit') { if (this.isRendered()) { if (!model.has('isHtml') || model.get('isHtml')) { - var value = this.plainToHtml(this.model.get(this.name)); - this.model.set(this.name, value); + var value = this.plainToHtml(this.model.get(this.name)); + if (this.lastHtmlValue && this.model.get(this.name) === this.htmlToPlain(this.lastHtmlValue)) { + value = this.lastHtmlValue; + } + this.model.set(this.name, value); this.enableWysiwygMode(); } else { + this.lastHtmlValue = this.model.get(this.name); var value = this.htmlToPlain(this.model.get(this.name)); this.model.set(this.name, value); this.disableWysiwygMode(); @@ -110,7 +114,7 @@ Espo.define('views/fields/wysiwyg', ['views/fields/text', 'lib!Summernote'], fun this.reRender(); } } - }.bind(this)); + }, this); this.once('remove', function () { if (this.$summernote) {