ChangeSet ID: 31250 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner@winehq.org 2007/07/12 18:58:01
Modified files: . : apidb.css include : html.php util.php version.php
Log message: Chris Morgan cmorgan@alum.wpi.edu 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.
Patch: http://cvs.winehq.org/patch.py?id=31250
Old revision New revision Changes Path 1.22 1.23 +1 -2 appdb/apidb.css 1.13 1.14 +2 -1 appdb/include/html.php 1.95 1.96 +75 -0 appdb/include/util.php 1.135 1.136 +33 -4 appdb/include/version.php
Index: appdb/apidb.css diff -u -p appdb/apidb.css:1.22 appdb/apidb.css:1.23 --- appdb/apidb.css:1.22 12 Jul 2007 23:58: 1 -0000 +++ appdb/apidb.css 12 Jul 2007 23:58: 1 -0000 @@ -137,8 +137,7 @@ p.indent { padding-left: 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 */ Index: appdb/include/html.php diff -u -p appdb/include/html.php:1.13 appdb/include/html.php:1.14 --- appdb/include/html.php:1.13 12 Jul 2007 23:58: 1 -0000 +++ appdb/include/html.php 12 Jul 2007 23:58: 1 -0000 @@ -70,7 +70,8 @@ function html_tr($arr, $class = "", $ext }
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.'');"'. Index: appdb/include/util.php diff -u -p appdb/include/util.php:1.95 appdb/include/util.php:1.96 --- appdb/include/util.php:1.95 12 Jul 2007 23:58: 1 -0000 +++ appdb/include/util.php 12 Jul 2007 23:58: 1 -0000 @@ -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; + } +}; + ?> Index: appdb/include/version.php diff -u -p appdb/include/version.php:1.135 appdb/include/version.php:1.136 --- appdb/include/version.php:1.135 12 Jul 2007 23:58: 1 -0000 +++ appdb/include/version.php 12 Jul 2007 23:58: 1 -0000 @@ -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";