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.
This commit is contained in:
Chris Morgan
2007-07-12 23:58:00 +00:00
committed by WineHQ
parent 2ce6d07a8c
commit 7c76ba42eb
4 changed files with 111 additions and 7 deletions

View File

@@ -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 */

View File

@@ -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 '<tr class='.$sClass.' '.
'onmouseover="ChangeTr(this, true, \''.$sHighlightColor.'\', \''.$sInactiveColor.'\', \''.$sTextDecorationHighlight.'\', \''.$sTextDecorationInactive.'\');"'.

View File

@@ -936,4 +936,79 @@ function login_url()
return $sLoginUrl;
}
// representation of an html color value
class color
{
var $iRed;
var $iGreen;
var $iBlue;
function color($iRed = 0, $iGreen = 0, $iBlue = 0)
{
$this->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;
}
};
?>

View File

@@ -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 "<tr class=$bgcolor>\n";
html_tr_highlight_clickable($oVersion->objectMakeUrl(),
$sClass, // class
$sHighlightColor, // highlight color
$sInactiveColor);// inactive color
echo " <td>".$oVersion->objectMakeLink()."</td>\n";
echo " <td>".util_trim_description($oVersion->sDescription)."</td>\n";
echo " <td $sRatingColor align=center>".$oVersion->sTestedRating."</td>\n";
echo " <td $sRatingColor align=center>".$oVersion->sTestedRelease."</td>\n";
echo " <td align=center>".$oVersion->sTestedRating."</td>\n";
echo " <td align=center>".$oVersion->sTestedRelease."</td>\n";
echo " <td align=center>".testData::get_testdata_count_for_versionid($oVersion->iVersionId)."</td>\n";
echo " <td align=center>".Comment::get_comment_count_for_versionid($oVersion->iVersionId)."</td>\n";
echo "</tr>\n\n";