diff --git a/addons/mass_mailing/static/src/js/mass_mailing.js b/addons/mass_mailing/static/src/js/mass_mailing.js index 3785cf87070..e2bcb8a09ad 100644 --- a/addons/mass_mailing/static/src/js/mass_mailing.js +++ b/addons/mass_mailing/static/src/js/mass_mailing.js @@ -1,6 +1,7 @@ odoo.define('mass_mailing.mass_mailing', function (require) { var core = require('web.core'); +var FieldTextHtml = require('web_editor.backend').FieldTextHtml; var KanbanRecord = require('web_kanban.Record'); var KanbanView = require('web_kanban.KanbanView'); @@ -25,4 +26,21 @@ KanbanView.include({ }, }); +FieldTextHtml.include({ + get_datarecord: function() { + /* Avoid extremely long URIs by whitelisting fields in the datarecord + that get set as a get parameter */ + var datarecord = this._super(); + if (this.view.model === 'mail.mass_mailing') { + // these fields can potentially get very long, let's remove them + var blacklist = ['mailing_domain', 'contact_list_ids']; + for (var k in blacklist) { + delete datarecord[blacklist[k]]; + } + delete datarecord[this.name]; + } + return datarecord; + }, +}); + }); diff --git a/addons/web_editor/static/src/js/backend.js b/addons/web_editor/static/src/js/backend.js index fa962cfd75f..de1d937d7ac 100644 --- a/addons/web_editor/static/src/js/backend.js +++ b/addons/web_editor/static/src/js/backend.js @@ -220,9 +220,12 @@ var FieldTextHtml = widget.extend({ this.$translate = $(); return def; }, + get_datarecord: function() { + return this.view.get_fields_values(); + }, get_url: function (_attr) { var src = this.options.editor_url || "/web_editor/field/html"; - var datarecord = this.view.get_fields_values(); + var datarecord = this.get_datarecord(); var attr = { 'model': this.view.model, @@ -269,7 +272,6 @@ var FieldTextHtml = widget.extend({ delete datarecord[this.name]; src += "&datarecord="+ encodeURIComponent(JSON.stringify(datarecord)); - return src; }, initialize_content: function() { @@ -384,4 +386,9 @@ core.form_widget_registry .add('html', FieldTextHtmlSimple) .add('html_frame', FieldTextHtml); +return { + FieldTextHtmlSimple: FieldTextHtmlSimple, + FieldTextHtml: FieldTextHtml, +}; + });