forked from Techsystech/web
[MIG] web_environment_ribbon: Migration to 17.0
parent
85534cca30
commit
6ab8325e48
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "Web Environment Ribbon",
|
"name": "Web Environment Ribbon",
|
||||||
"version": "16.0.1.0.0",
|
"version": "17.0.1.0.0",
|
||||||
"category": "Web",
|
"category": "Web",
|
||||||
"author": "Francesco OpenCode Apruzzese, "
|
"author": "Francesco OpenCode Apruzzese, "
|
||||||
"Tecnativa, "
|
"Tecnativa, "
|
||||||
|
@ -20,8 +20,8 @@
|
||||||
"auto_install": False,
|
"auto_install": False,
|
||||||
"installable": True,
|
"installable": True,
|
||||||
"assets": {
|
"assets": {
|
||||||
"web.assets_common": [
|
"web.assets_backend": [
|
||||||
"web_environment_ribbon/static/**/*",
|
"web_environment_ribbon/static/src/components/environment_ribbon/*",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,10 +27,3 @@
|
||||||
.test-ribbon b {
|
.test-ribbon b {
|
||||||
font-size: 20px;
|
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;
|
|
||||||
}
|
|
|
@ -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`<div class="test-ribbon" />`;
|
||||||
|
|
||||||
|
registry.category("main_components").add("WebEnvironmentRibbon", {
|
||||||
|
Component: WebEnvironmentRibbon,
|
||||||
|
});
|
|
@ -1,62 +0,0 @@
|
||||||
/* Copyright 2015 Sylvain Calador <sylvain.calador@akretion.com>
|
|
||||||
Copyright 2015 Javi Melendez <javi.melendez@algios.com>
|
|
||||||
Copyright 2016 Antonio Espinosa <antonio.espinosa@tecnativa.com>
|
|
||||||
Copyright 2017 Thomas Binsfeld <thomas.binsfeld@acsone.eu>
|
|
||||||
Copyright 2017 Xavier Jiménez <xavier.jimenez@qubiq.es>
|
|
||||||
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 = $('<div class="test-ribbon hidden"/>');
|
|
||||||
$("body").append(ribbon);
|
|
||||||
ribbon.hide();
|
|
||||||
// Get ribbon data from backend
|
|
||||||
rpc.query({
|
|
||||||
model: "web.environment.ribbon.backend",
|
|
||||||
method: "get_environment_ribbon",
|
|
||||||
}).then(function (ribbon_data) {
|
|
||||||
// Ribbon name
|
|
||||||
if (ribbon_data.name && ribbon_data.name !== "False") {
|
|
||||||
ribbon.html(ribbon_data.name);
|
|
||||||
ribbon.show();
|
|
||||||
}
|
|
||||||
// Ribbon color
|
|
||||||
if (ribbon_data.color && validStrColour(ribbon_data.color)) {
|
|
||||||
ribbon.css("color", ribbon_data.color);
|
|
||||||
}
|
|
||||||
// Ribbon background color
|
|
||||||
if (
|
|
||||||
ribbon_data.background_color &&
|
|
||||||
validStrColour(ribbon_data.background_color)
|
|
||||||
) {
|
|
||||||
ribbon.css("background-color", ribbon_data.background_color);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
|
@ -7,7 +7,7 @@ from odoo.tests import common
|
||||||
class TestEnvironmentRibbonData(common.TransactionCase):
|
class TestEnvironmentRibbonData(common.TransactionCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
super(TestEnvironmentRibbonData, cls).setUpClass()
|
super().setUpClass()
|
||||||
cls.env["ir.config_parameter"].set_param("ribbon.name", "Test Ribbon {db_name}")
|
cls.env["ir.config_parameter"].set_param("ribbon.name", "Test Ribbon {db_name}")
|
||||||
cls.env["ir.config_parameter"].set_param("ribbon.color", "#000000")
|
cls.env["ir.config_parameter"].set_param("ribbon.color", "#000000")
|
||||||
cls.env["ir.config_parameter"].set_param("ribbon.background.color", "#FFFFFF")
|
cls.env["ir.config_parameter"].set_param("ribbon.background.color", "#FFFFFF")
|
||||||
|
|
Loading…
Reference in New Issue