[imp] added text in white if status bar if arrow color is too dark

bzr revid: nicolas.vanhoren@openerp.com-20111017120901-zuxcqat247jfbgc9
This commit is contained in:
niv-openerp 2011-10-17 14:09:01 +02:00
parent ca22a8a745
commit f3b67f4f71
1 changed files with 20 additions and 0 deletions

View File

@ -2764,12 +2764,32 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({
if (color) {
var elem = this.$element.find("li.oe-arrow-list-selected span");
elem.css("border-color", color);
if (this.check_white(color))
elem.css("color", "white");
elem = this.$element.find("li.oe-arrow-list-selected .oe-arrow-list-before");
elem.css("border-left-color", "rgba(0,0,0,0)");
elem = this.$element.find("li.oe-arrow-list-selected .oe-arrow-list-after");
elem.css("border-color", "rgba(0,0,0,0)");
elem.css("border-left-color", color);
}
},
check_white: function(color) {
var div = $("<div></div>");
div.css("display", "none");
div.css("color", color);
div.appendTo($("body"));
var ncolor = div.css("color");
div.remove();
var res = /^\s*rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)\s*$/.exec(ncolor);
if (!res) {
return false;
}
var comps = [parseInt(res[1]), parseInt(res[2]), parseInt(res[3])];
var lum = comps[0] * 0.3 + comps[1] * 0.59 + comps[1] * 0.11;
if (lum < 128) {
return true;
}
return false;
}
});