From f3b67f4f7129876ef5f90e6879391c7542d3185a Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 17 Oct 2011 14:09:01 +0200 Subject: [PATCH] [imp] added text in white if status bar if arrow color is too dark bzr revid: nicolas.vanhoren@openerp.com-20111017120901-zuxcqat247jfbgc9 --- addons/web/static/src/js/view_form.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index c3baf8c44f9..e998b3b2afc 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -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.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; } });