[IMP] ribbon color customization (#347)

* [IMP] web_environment_ribbon: add color customization
The ribbon color and background-color can be modified through system
parameters:
 * ribbon.color
 * ribbon.background.color

Added Copyright in .js
Delete duplicate entries in css
This commit is contained in:
Javi Melendez
2016-04-25 13:12:58 +02:00
committed by Andreas Perhab
parent 6b03f8673a
commit 4f5d9edaae
5 changed files with 59 additions and 21 deletions

View File

@@ -2,6 +2,9 @@
Copyright (C) 2015 Akretion (http://www.akretion.com)
@author Sylvain Calador <sylvain.calador@akretion.com>
Copyright (C) 2016 Algi Open Source Solutions (http://www.algios.com)
@author Javi Melendez <javi.melendez@algios.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
@@ -22,9 +25,8 @@ openerp.web_environment_ribbon = function(instance) {
ribbon.hide();
var model = new instance.web.Model('ir.config_parameter');
var key = 'ribbon.name';
var res = model.call('get_param', [key]).then(
var res = model.call('get_param', ['ribbon.name']).then(
function (name) {
if (name && name != 'False') {
ribbon.html(name);
@@ -32,4 +34,35 @@ openerp.web_environment_ribbon = function(instance) {
}
}
);
// Get ribbon color from system parameters
var res = model.call('get_param', ['ribbon.color']).then(
function (strColor) {
if (strColor && validStrColour(strColor)) {
ribbon.css('color', strColor);
}
}
);
// Get ribbon background color from system parameters
var res = model.call('get_param', ['ribbon.background.color']).then(
function (strBackgroundColor) {
if (strBackgroundColor && validStrColour(strBackgroundColor)) {
ribbon.css('background-color', strBackgroundColor);
}
}
);
// 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)";
}
}