[FIX] web: html_frame field and lang vs onchange
In mass mailing there is several possibilities of states when rendering
the widget with a possibly new value:
1. we are not in edition
a. we are in same language than user language => the editor content
can be updated
b. we are in a different language => the content cannot be updated
2. we are in edition
a. we are editing translation : the editor content cannot be updated
b. we are not editing translation (editor language == en_US)
i. we are requesting editor update (by having magic value
`on_change_model_and_list`) => the editor can be updated
ii. we are in same language than user language => the editor content
can be updated
iii. we are in a different language => the editor content cannot be
updated
In summary:
- if language is the same than the user, we can update the value
- if value is magic `on_change_model_and_list` and we are not translating,
we can update the editor
Before this commit, this worked as expected but for 2.a.ii. which if the
user language was not en_US would for example prevent editor updating.
closes #15583
closes #15414
opw-708032
inspired by a27e24c6d1
note: the fix is a fix for 9.0 and saas-11 only.
This commit is contained in:
@@ -351,7 +351,12 @@ var FieldTextHtml = widget.extend({
|
||||
});
|
||||
},
|
||||
render_value: function() {
|
||||
if (this.lang !== this.view.dataset.context.lang || this.$iframe.attr('src').match(/[?&]edit_translations=1/)) {
|
||||
if (this.$iframe.attr('src').match(/[?&]edit_translations=1/)) {
|
||||
return;
|
||||
}
|
||||
// ONLY HAVE THIS IN 9.0 AND SAAS-11
|
||||
var is_editor_onchange = this.get('value') === '<p>on_change_model_and_list</p>';
|
||||
if (this.lang !== this.view.dataset.context.lang && !is_editor_onchange) {
|
||||
return;
|
||||
}
|
||||
var value = (this.get('value') || "").replace(/^<p[^>]*>(\s*|<br\/?>)<\/p>$/, '');
|
||||
|
||||
Reference in New Issue
Block a user