From 7c76ba42ebfbdb2fc1ea3b54b4b994f62aec29e9 Mon Sep 17 00:00:00 2001 From: Chris Morgan Date: Thu, 12 Jul 2007 23:58:00 +0000 Subject: [PATCH] Color versions when displaying the version table on the application page. Add dynamic highlighting and the ability to click on the row in the version table. --- apidb.css | 3 +- include/html.php | 3 +- include/util.php | 75 +++++++++++++++++++++++++++++++++++++++++++++ include/version.php | 37 +++++++++++++++++++--- 4 files changed, 111 insertions(+), 7 deletions(-) diff --git a/apidb.css b/apidb.css index 8c497b5..67ca444 100644 --- a/apidb.css +++ b/apidb.css @@ -137,8 +137,7 @@ p.indent { padding-left: 1em; padding-right: 1em;} .gold { background-color: #fff600; } .silver { background-color: silver; } .bronze { background-color: #fcba0a; } -.Garbage { background-color: #999966; } - +.garbage { background-color: #999966; } /*******************************************************************/ /* The following styles are used exclusively in appdb */ diff --git a/include/html.php b/include/html.php index a674ab2..78f29a2 100644 --- a/include/html.php +++ b/include/html.php @@ -70,7 +70,8 @@ function html_tr($arr, $class = "", $extra = "") } function html_tr_highlight_clickable($sUrl, $sClass, $sHighlightColor, $sInactiveColor, - $sTextDecorationHighlight = "none", $sTextDecorationInactive = "none") + $sTextDecorationHighlight = "none", + $sTextDecorationInactive = "none") { echo 'iRed = $iRed; + $this->iGreen = $iGreen; + $this->iBlue = $iBlue; + } + + function setColorByName($sColorName) + { + switch($sColorName) + { + case "Platinum": + $this->iRed = 0xEC; + $this->iGreen = 0xEC; + $this->iBlue = 0xEC; + break; + case "Gold": + $this->iRed = 0xFF; + $this->iGreen = 0xF6; + $this->iBlue = 0x00; + break; + case "Silver": + $this->iRed = 0xC0; + $this->iGreen = 0xC0; + $this->iBlue = 0xC0; + break; + case "Bronze": + $this->iRed = 0xFC; + $this->iGreen = 0xBA; + $this->iBlue = 0x0A; + break; + case "Garbage": + $this->iRed = 0x99; + $this->iGreen = 0x96; + $this->iBlue = 0x66; + break; + default: + break; + } + } + + // convert the color value into a html rgb hex string + function getHexString() + { + return sprintf("#%02X%02X%02X", $this->iRed, $this->iGreen, $this->iBlue); + } + + // add $iAmount to each color value, maxing out at 0xFF, the largest + // color value allowed + function add($iAmount) + { + if($this->iRed + $iAmount > 0xFF) + $this->iRed = 0xFF; + else + $this->iRed += $iAmount; + + if($this->iGreen + $iAmount > 0xFF) + $this->iGreen = 0xFF; + else + $this->iGreen += $iAmount; + + if($this->iBlue + $iAmount > 0xFF) + $this->iBlue = 0xFF; + else + $this->iBlue += $iAmount; + } +}; + ?> diff --git a/include/version.php b/include/version.php index dd8f1ec..1be2ae5 100644 --- a/include/version.php +++ b/include/version.php @@ -1023,17 +1023,46 @@ class version { // set row color $bgcolor = ($c % 2 == 0) ? "color0" : "color1"; + // if we have a valid tested rating if($oVersion->sTestedRating && $oVersion->sTestedRating != "/") + { $sRatingColor = "class=\"$oVersion->sTestedRating\""; - else + $sClass = $oVersion->sTestedRating; + + $oColor = new Color(); + $oColor->setColorByName($oVersion->sTestedRating); + $sInactiveColor = $oColor->getHexString(); + + // increase the brightness of the color to create the + // value used for the highlight color + $oColor->add(50); + $sHighlightColor = $oColor->getHexString(); + } else + { $sRatingColor = "class=\"$bgcolor\""; + $sClass = $bgcolor; + + // convert color values to hex values for the row highlighting + if($bgcolor == "color0") + { + $sHighlightColor = "#E0E0E0"; + $sInactiveColor = $sHighlightColor; + } else + { + $sHighlightColor = "#C0C0C0"; + $sInactiveColor = $sHighlightColor; + } + } //display row - echo "\n"; + html_tr_highlight_clickable($oVersion->objectMakeUrl(), + $sClass, // class + $sHighlightColor, // highlight color + $sInactiveColor);// inactive color echo " ".$oVersion->objectMakeLink()."\n"; echo " ".util_trim_description($oVersion->sDescription)."\n"; - echo " ".$oVersion->sTestedRating."\n"; - echo " ".$oVersion->sTestedRelease."\n"; + echo " ".$oVersion->sTestedRating."\n"; + echo " ".$oVersion->sTestedRelease."\n"; echo " ".testData::get_testdata_count_for_versionid($oVersion->iVersionId)."\n"; echo " ".Comment::get_comment_count_for_versionid($oVersion->iVersionId)."\n"; echo "\n\n";