diff --git a/htdocs/core/class/html.formother.class.php b/htdocs/core/class/html.formother.class.php index 1908d04c3128d..049ec0c5d75d2 100644 --- a/htdocs/core/class/html.formother.class.php +++ b/htdocs/core/class/html.formother.class.php @@ -601,29 +601,9 @@ private function _pLineSelect(&$inc, $parent, $lines, $level=0, $selectedtask=0, static function showColor($color, $textifnotdefined='') { $textcolor='FFF'; - if ($color) - { - $tmp=explode(',', $color); - if (count($tmp) > 1) // This is a comma RGB ('255','255','255') - { - $r = $tmp[0]; - $g = $tmp[1]; - $b = $tmp[2]; - } - else - { - $hexr=$color[0].$color[1]; - $hexg=$color[2].$color[3]; - $hexb=$color[4].$color[5]; - $r = hexdec($hexr); - $g = hexdec($hexg); - $b = hexdec($hexb); - } - $bright = (max($r, $g, $b) + min($r, $g, $b)) / 510.0; // HSL algorithm - if ($bright > 0.6) $textcolor='000'; - } - include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; + if(colorIsLight($color)) $textcolor='000'; + $color = colorArrayToHex(colorStringToArray($color,array()),''); if ($color) print ''; diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php index 9d3e6ee1b6317..8b91611a8155e 100644 --- a/htdocs/core/lib/functions2.lib.php +++ b/htdocs/core/lib/functions2.lib.php @@ -2145,6 +2145,40 @@ function colorStringToArray($stringcolor,$colorifnotfound=array(88,88,88)) return array(hexdec($reg[1]),hexdec($reg[2]),hexdec($reg[3])); } +/** + * Return true if the color is light + * + * @param string $stringcolor String with hex (FFFFFF) or comma RGB ('255,255,255') + * @return int -1 : Error with argument passed |0 : color is dark | 1 : color is light + */ +function colorIsLight($stringcolor) +{ + $res = -1; + if (!empty($stringcolor)) + { + $res = 0; + $tmp=explode(',', $stringcolor); + if (count($tmp) > 1) // This is a comma RGB ('255','255','255') + { + $r = $tmp[0]; + $g = $tmp[1]; + $b = $tmp[2]; + } + else + { + $hexr=$stringcolor[0].$stringcolor[1]; + $hexg=$stringcolor[2].$stringcolor[3]; + $hexb=$stringcolor[4].$stringcolor[5]; + $r = hexdec($hexr); + $g = hexdec($hexg); + $b = hexdec($hexb); + } + $bright = (max($r, $g, $b) + min($r, $g, $b)) / 510.0; // HSL algorithm + if ($bright > 0.6) $res = 1; + } + return $res; +} + /** * Applies the Cartesian product algorithm to an array * Source: http://stackoverflow.com/a/15973172 diff --git a/htdocs/projet/tasks/comment.php b/htdocs/projet/tasks/comment.php index 3f0cbe0bf4710..69f5125d899ee 100644 --- a/htdocs/projet/tasks/comment.php +++ b/htdocs/projet/tasks/comment.php @@ -348,20 +348,25 @@ // List of comments if(!empty($task->comments)) { // Default color for current user - $TColors = array($user->id => 'efefef'); + $TColors = array($user->id => array('bgcolor'=>'efefef','color'=>'555')); $first = true; foreach($task->comments as $comment) { $fk_user = $comment->fk_user; $userstatic->fetch($fk_user); if(empty($TColors[$fk_user])) { - $TColors[$fk_user] = random_color(180,240); + $bgcolor = random_color(180,240); + if(!empty($userstatic->color)) { + $bgcolor = $userstatic->color; + } + $color = (colorIsLight($bgcolor))?'555':'fff'; + $TColors[$fk_user] = array('bgcolor'=>$bgcolor,'color'=>$color); } - print '
'; + print '
'; if($comment->fk_user == $user->id) { print '
 
'; } - print '
'; + print '
'; print '
'; print $comment->description; print '
'; @@ -377,6 +382,8 @@ if($comment->fk_user != $user->id) { print '
 
'; } + print '
'; + print '
'; $first = false; } diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index e1ba39349fcf8..1fb99bbdc0745 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -3825,9 +3825,11 @@ } #comment .comment-info { font-size:0.8em; - color:#555; margin-top:5px; } +#comment .comment-info a { + color:inherit; +} #comment textarea { width: 100%; }