From fa2e0a63492bb6eb48d8c5fbeccb1ec1957b7cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Geelen=20=28sge=29?= Date: Mon, 10 May 2021 14:18:20 +0000 Subject: [PATCH] [IMP] web_editor: Add rel="ugc" to some user generated links See odoo task : https://www.odoo.com/web#action=333&active_id=1695&cids=1&id=2319575&menu_id=4720&model=project.task&view_type=form closes odoo/odoo#70614 Signed-off-by: David Monjoie (dmo) --- addons/web_editor/static/src/js/wysiwyg/widgets/link.js | 8 +++++++- addons/web_editor/static/src/js/wysiwyg/wysiwyg.js | 4 ++++ addons/website_forum/static/src/js/website_forum.js | 1 + addons/website_profile/static/src/js/website_profile.js | 1 + 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/addons/web_editor/static/src/js/wysiwyg/widgets/link.js b/addons/web_editor/static/src/js/wysiwyg/widgets/link.js index 06be5a9a785..4e3a8537ea0 100644 --- a/addons/web_editor/static/src/js/wysiwyg/widgets/link.js +++ b/addons/web_editor/static/src/js/wysiwyg/widgets/link.js @@ -150,8 +150,14 @@ const Link = Widget.extend({ const attrs = Object.assign({}, this.data.oldAttributes, { href: data.url, target: data.isNewWindow ? '_blank' : '', - class: `${data.classes}`, }); + if (data.classes) { + attrs.class = `${data.classes}`; + } + if (data.rel) { + attrs.rel = `${data.rel}`; + } + this.$link.attr(attrs); if (!this.$link.attr('target')) { this.$link[0].removeAttribute('target'); diff --git a/addons/web_editor/static/src/js/wysiwyg/wysiwyg.js b/addons/web_editor/static/src/js/wysiwyg/wysiwyg.js index bdda8938473..b240e146550 100644 --- a/addons/web_editor/static/src/js/wysiwyg/wysiwyg.js +++ b/addons/web_editor/static/src/js/wysiwyg/wysiwyg.js @@ -79,6 +79,7 @@ const Wysiwyg = Widget.extend({ isRootEditable: this.options.isRootEditable, controlHistoryFromDocument: this.options.controlHistoryFromDocument, getContentEditableAreas: this.options.getContentEditableAreas, + defaultLinkAttributes: this.options.userGeneratedContent ? {rel: 'ugc' } : {}, getContextFromParentRect: options.getContextFromParentRect, noScrollSelector: 'body, .note-editable, .o_content, #wrapwrap', commands: commands, @@ -586,6 +587,9 @@ const Wysiwyg = Widget.extend({ if (!linkWidget.$link.length) { linkWidget.$link = $(linkWidget.getOrCreateLink(this.$editable[0])); } + if (this.options.userGeneratedContent) { + data.rel = 'ugc'; + } linkWidget.applyLinkToDom(data); getDeepRange(this.odooEditor.editable, {range: data.range, select: true}); diff --git a/addons/website_forum/static/src/js/website_forum.js b/addons/website_forum/static/src/js/website_forum.js index 15cc5a69f5c..f3fca69f07a 100644 --- a/addons/website_forum/static/src/js/website_forum.js +++ b/addons/website_forum/static/src/js/website_forum.js @@ -131,6 +131,7 @@ publicWidget.registry.websiteForum = publicWidget.Widget.extend({ res_id: +window.location.pathname.split('-').pop(), }, resizable: true, + userGeneratedContent: true, }; if (!hasFullEdit) { options.plugins = { diff --git a/addons/website_profile/static/src/js/website_profile.js b/addons/website_profile/static/src/js/website_profile.js index b28dda0b3ca..1525eaa0fd8 100644 --- a/addons/website_profile/static/src/js/website_profile.js +++ b/addons/website_profile/static/src/js/website_profile.js @@ -68,6 +68,7 @@ publicWidget.registry.websiteProfileEditor = publicWidget.Widget.extend({ res_id: parseInt(this.$('input[name=user_id]').val()), }, resizable: true, + userGeneratedContent: true, }); return Promise.all([def]);