From 6ab8325e48c402348c1f67498acb272e16c47eb1 Mon Sep 17 00:00:00 2001 From: Raf Ven Date: Tue, 14 Nov 2023 14:13:24 +0100 Subject: [PATCH] [MIG] web_environment_ribbon: Migration to 17.0 --- web_environment_ribbon/__manifest__.py | 6 +- .../environment_ribbon}/ribbon.css | 7 -- .../environment_ribbon/ribbon.esm.js | 68 +++++++++++++++++++ .../static/src/js/ribbon.js | 62 ----------------- .../tests/test_environment_ribbon_data.py | 2 +- 5 files changed, 72 insertions(+), 73 deletions(-) rename web_environment_ribbon/static/src/{css => components/environment_ribbon}/ribbon.css (82%) create mode 100644 web_environment_ribbon/static/src/components/environment_ribbon/ribbon.esm.js delete mode 100644 web_environment_ribbon/static/src/js/ribbon.js diff --git a/web_environment_ribbon/__manifest__.py b/web_environment_ribbon/__manifest__.py index 9d99f1847..af79f1450 100644 --- a/web_environment_ribbon/__manifest__.py +++ b/web_environment_ribbon/__manifest__.py @@ -6,7 +6,7 @@ { "name": "Web Environment Ribbon", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "category": "Web", "author": "Francesco OpenCode Apruzzese, " "Tecnativa, " @@ -20,8 +20,8 @@ "auto_install": False, "installable": True, "assets": { - "web.assets_common": [ - "web_environment_ribbon/static/**/*", + "web.assets_backend": [ + "web_environment_ribbon/static/src/components/environment_ribbon/*", ], }, } diff --git a/web_environment_ribbon/static/src/css/ribbon.css b/web_environment_ribbon/static/src/components/environment_ribbon/ribbon.css similarity index 82% rename from web_environment_ribbon/static/src/css/ribbon.css rename to web_environment_ribbon/static/src/components/environment_ribbon/ribbon.css index cbf4a40d5..1f4d33ad1 100644 --- a/web_environment_ribbon/static/src/css/ribbon.css +++ b/web_environment_ribbon/static/src/components/environment_ribbon/ribbon.css @@ -27,10 +27,3 @@ .test-ribbon b { font-size: 20px; } - -header:hover ~ .test-ribbon, -nav:hover ~ .test-ribbon { - /* Ease out ribbon when user is using the navigation in Odoo */ - opacity: 0; - transition: 0.2s ease; -} diff --git a/web_environment_ribbon/static/src/components/environment_ribbon/ribbon.esm.js b/web_environment_ribbon/static/src/components/environment_ribbon/ribbon.esm.js new file mode 100644 index 000000000..61eb8dc6c --- /dev/null +++ b/web_environment_ribbon/static/src/components/environment_ribbon/ribbon.esm.js @@ -0,0 +1,68 @@ +/** @odoo-module **/ + +import {Component, xml} from "@odoo/owl"; +import {useBus, useService} from "@web/core/utils/hooks"; +import {registry} from "@web/core/registry"; + +export class WebEnvironmentRibbon extends Component { + setup() { + this.orm = useService("orm"); + useBus(this.env.bus, "WEB_CLIENT_READY", this.showRibbon.bind(this)); + } + + // Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/ + validStrColour(strToTest) { + if (strToTest === "") { + return false; + } + if (strToTest === "inherit") { + return true; + } + if (strToTest === "transparent") { + return true; + } + const image = document.createElement("img"); + image.style.color = "rgb(0, 0, 0)"; + image.style.color = strToTest; + if (image.style.color !== "rgb(0, 0, 0)") { + return true; + } + image.style.color = "rgb(255, 255, 255)"; + image.style.color = strToTest; + return image.style.color !== "rgb(255, 255, 255)"; + } + + showRibbon() { + const ribbon = $(".test-ribbon"); + const self = this; + ribbon.hide(); + // Get ribbon data from backend + self.orm + .call("web.environment.ribbon.backend", "get_environment_ribbon") + .then(function (ribbon_data) { + // Ribbon name + if (ribbon_data.name && ribbon_data.name !== "False") { + ribbon.show(); + ribbon.html(ribbon_data.name); + } + // Ribbon color + if (ribbon_data.color && self.validStrColour(ribbon_data.color)) { + ribbon.css("color", ribbon_data.color); + } + // Ribbon background color + if ( + ribbon_data.background_color && + self.validStrColour(ribbon_data.background_color) + ) { + ribbon.css("background-color", ribbon_data.background_color); + } + }); + } +} + +WebEnvironmentRibbon.props = {}; +WebEnvironmentRibbon.template = xml`
`; + +registry.category("main_components").add("WebEnvironmentRibbon", { + Component: WebEnvironmentRibbon, +}); diff --git a/web_environment_ribbon/static/src/js/ribbon.js b/web_environment_ribbon/static/src/js/ribbon.js deleted file mode 100644 index 67a457123..000000000 --- a/web_environment_ribbon/static/src/js/ribbon.js +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright 2015 Sylvain Calador - Copyright 2015 Javi Melendez - Copyright 2016 Antonio Espinosa - Copyright 2017 Thomas Binsfeld - Copyright 2017 Xavier Jiménez - License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ - -odoo.define("web_environment_ribbon.ribbon", function (require) { - "use strict"; - var rpc = require("web.rpc"); - var core = require("web.core"); - - // Code from: http://jsfiddle.net/WK_of_Angmar/xgA5C/ - function validStrColour(strToTest) { - if (strToTest === "") { - return false; - } - if (strToTest === "inherit") { - return true; - } - if (strToTest === "transparent") { - return true; - } - var image = document.createElement("img"); - image.style.color = "rgb(0, 0, 0)"; - image.style.color = strToTest; - if (image.style.color !== "rgb(0, 0, 0)") { - return true; - } - image.style.color = "rgb(255, 255, 255)"; - image.style.color = strToTest; - return image.style.color !== "rgb(255, 255, 255)"; - } - - core.bus.on("web_client_ready", null, function () { - var ribbon = $('