diff --git a/addons/google_recaptcha/static/src/js/recaptcha.js b/addons/google_recaptcha/static/src/js/recaptcha.js index 7d5153215c5..6ac81a13322 100644 --- a/addons/google_recaptcha/static/src/js/recaptcha.js +++ b/addons/google_recaptcha/static/src/js/recaptcha.js @@ -21,7 +21,7 @@ const ReCaptcha = Class.extend({ */ loadLibs: function () { if (this._publicKey) { - this._recaptchaReady = loadJS(`https://www.recaptcha.net/recaptcha/api.js?render=${this._publicKey}`) + this._recaptchaReady = loadJS(`https://www.recaptcha.net/recaptcha/api.js?render=${encodeURIComponent(this._publicKey)}`) .then(() => new Promise(resolve => window.grecaptcha.ready(() => resolve()))); return this._recaptchaReady.then(() => !!document.querySelector('.grecaptcha-badge')); } diff --git a/addons/web_editor/static/shapes/convert.js b/addons/web_editor/static/shapes/convert.js index 2688f4aa86d..7a556a5f28d 100644 --- a/addons/web_editor/static/shapes/convert.js +++ b/addons/web_editor/static/shapes/convert.js @@ -48,14 +48,14 @@ files.filter(f => f.endsWith('svg')).forEach(filePath => { repeatX: fileName.includes('repeatx'), repeatY: fileName.includes('repeaty'), }; - shape.optionXML = ``; + shape.optionXML = ``; if (shape.position[0] === 'stretch') { shape.position = ['center']; shape.size = '100% 100%'; } else { shape.size = '100% auto'; } - shape.scss = `'${shape.page}/${shape.name}': ('position': ${shape.position[0]}, 'size': ${shape.size}, 'colors': (${shape.colors.join(', ')})${shape.repeatX ? ", 'repeat-x': true" : ""}${shape.repeatY ? ", 'repeat-y': true" : ""})`; + shape.scss = `'${encodeURIComponent(shape.page)}/${encodeURIComponent(shape.name)}': ('position': ${shape.position[0]}, 'size': ${shape.size}, 'colors': (${shape.colors.join(', ')})${shape.repeatX ? ", 'repeat-x': true" : ""}${shape.repeatY ? ", 'repeat-y': true" : ""})`; shapes.push(shape); }); const xml = shapes.map(shape => shape.optionXML).join('\n'); diff --git a/addons/web_editor/static/src/components/media_dialog/document_selector.js b/addons/web_editor/static/src/components/media_dialog/document_selector.js index a8c84d61ec0..707e6baf3d7 100644 --- a/addons/web_editor/static/src/components/media_dialog/document_selector.js +++ b/addons/web_editor/static/src/components/media_dialog/document_selector.js @@ -49,7 +49,7 @@ export class DocumentSelector extends FileSelector { static async createElements(selectedMedia, { orm }) { return Promise.all(selectedMedia.map(async attachment => { const linkEl = document.createElement('a'); - let href = `/web/content/${attachment.id}?unique=${attachment.checksum}&download=true`; + let href = `/web/content/${encodeURIComponent(attachment.id)}?unique=${encodeURIComponent(attachment.checksum)}&download=true`; if (!attachment.public) { let accessToken = attachment.access_token; if (!accessToken) { @@ -59,7 +59,7 @@ export class DocumentSelector extends FileSelector { [attachment.id], ); } - href += `&access_token=${accessToken}`; + href += `&access_token=${encodeURIComponent(accessToken)}`; } linkEl.href = href; linkEl.title = attachment.name; diff --git a/addons/web_editor/static/src/components/media_dialog/file_selector.js b/addons/web_editor/static/src/components/media_dialog/file_selector.js index e13fb71a8b8..3fec0d99b14 100644 --- a/addons/web_editor/static/src/components/media_dialog/file_selector.js +++ b/addons/web_editor/static/src/components/media_dialog/file_selector.js @@ -40,7 +40,7 @@ AttachmentError.template = xml ` following pages or views: