diff --git a/addons/website/static/src/snippets/s_share/000.js b/addons/website/static/src/snippets/s_share/000.js index b6d630b12f8..a5ef7c6c4a0 100644 --- a/addons/website/static/src/snippets/s_share/000.js +++ b/addons/website/static/src/snippets/s_share/000.js @@ -10,14 +10,17 @@ const ShareWidget = publicWidget.Widget.extend({ * @override */ start: function () { - var urlRegex = /(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/; - var titleRegex = /(\?(?:|.*&)(?:title|text|subject)=)(.*?)(&|#|$)/; - var url = encodeURIComponent(window.location.href); - var title = encodeURIComponent($('title').text()); - this.$('a').each(function () { - var $a = $(this); - $a.attr('href', function (i, href) { - return href.replace(urlRegex, function (match, a, b, c) { + const urlRegex = /(\?(?:|.*&)(?:u|url|body)=)(.*?)(&|#|$)/; + const titleRegex = /(\?(?:|.*&)(?:title|text|subject|description)=)(.*?)(&|#|$)/; + const mediaRegex = /(\?(?:|.*&)(?:media)=)(.*?)(&|#|$)/; + const url = encodeURIComponent(window.location.href); + const title = encodeURIComponent($('title').text()); + const media = encodeURIComponent($('meta[property="og:image"]').attr('content')); + + this.$('a').each((index, element) => { + const $a = $(element); + $a.attr('href', (i, href) => { + return href.replace(urlRegex, (match, a, b, c) => { return a + url + c; }).replace(titleRegex, function (match, a, b, c) { if ($a.hasClass('s_share_whatsapp')) { @@ -29,6 +32,8 @@ const ShareWidget = publicWidget.Widget.extend({ return a + title + url + c; } return a + title + c; + }).replace(mediaRegex, (match, a, b, c) => { + return a + media + c; }); }); if ($a.attr('target') && $a.attr('target').match(/_blank/i) && !$a.closest('.o_editable').length) { diff --git a/addons/website/views/snippets/s_share.xml b/addons/website/views/snippets/s_share.xml index 54c2aa47455..aaf48d46cf9 100644 --- a/addons/website/views/snippets/s_share.xml +++ b/addons/website/views/snippets/s_share.xml @@ -10,13 +10,13 @@ - + - +