diff --git a/addons/tncsc_deployment/__manifest__.py b/addons/tncsc_deployment/__manifest__.py index 40fb218..af2888e 100644 --- a/addons/tncsc_deployment/__manifest__.py +++ b/addons/tncsc_deployment/__manifest__.py @@ -57,10 +57,12 @@ that applies to the community_* product modules. 'tncsc_deployment/static/src/scss/primary_variables.scss', ], 'web.assets_frontend': [ + 'tncsc_deployment/static/src/js/favicon.js', 'tncsc_deployment/static/src/scss/login_theme.scss', 'tncsc_deployment/static/src/scss/website_navigation.scss', ], 'web.assets_backend': [ + 'tncsc_deployment/static/src/js/favicon.js', 'tncsc_deployment/static/src/scss/tncsc_backend_theme.scss', 'tncsc_deployment/static/src/scss/event_kanban.scss', 'tncsc_deployment/static/src/scss/community_dashboard.scss', diff --git a/addons/tncsc_deployment/static/src/js/favicon.js b/addons/tncsc_deployment/static/src/js/favicon.js new file mode 100644 index 0000000..33c5e02 --- /dev/null +++ b/addons/tncsc_deployment/static/src/js/favicon.js @@ -0,0 +1,27 @@ +/** @odoo-module **/ + +// Apply branding to rendered layouts too, including website-specific copies. +// A versioned URL avoids reusing a previously cached database favicon. +function setTncscFavicon() { + const href = "/tncsc_deployment/static/src/img/brand/logo.png?v=tncsc-1"; + const icons = [...document.head.querySelectorAll( + 'link[rel~="icon"], link[rel="apple-touch-icon"], link[rel="apple-touch-icon-precomposed"]' + )]; + if (!icons.some((icon) => icon.rel.split(/\s+/).includes("icon"))) { + const icon = document.createElement("link"); + icon.rel = "icon"; + document.head.appendChild(icon); + icons.push(icon); + } + for (const icon of icons) { + icon.type = "image/png"; + icon.href = href; + icon.removeAttribute("sizes"); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", setTncscFavicon, { once: true }); +} else { + setTncscFavicon(); +}