appdb/ ./distributionView.php include/distribu ...
ChangeSet ID: 30910 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner(a)winehq.org 2007/01/26 18:30:00 Modified files: . : distributionView.php include : distribution.php Log message: Alexander Nicolaysen Sørnes <alex(a)thehandofagony.com> Add distribution functions and use them. Based on a patch by Chris Morgan Patch: http://cvs.winehq.org/patch.py?id=30910 Old revision New revision Changes Path 1.23 1.24 +8 -29 appdb/distributionView.php 1.5 1.6 +71 -1 appdb/include/distribution.php Index: appdb/distributionView.php diff -u -p appdb/distributionView.php:1.23 appdb/distributionView.php:1.24 --- appdb/distributionView.php:1.23 27 Jan 2007 0:30: 0 -0000 +++ appdb/distributionView.php 27 Jan 2007 0:30: 0 -0000 @@ -25,46 +25,25 @@ if ($aClean['sSub']) } $oDistribution = new distribution($aClean['iDistributionId']); -//exit with error if no distribution +/* Display distribution list if no id given */ if(!$oDistribution->iDistributionId) { apidb_header("View Distributions"); //get available Distributions - $hResult = query_parameters("SELECT distributionId FROM distributions ORDER BY name, distributionId;"); + $hResult = distribution::ObjectGetEntries(false); // show Distribution list echo html_frame_start("","90%","",0); echo "<table width='100%' border=0 cellpadding=3 cellspacing=0>\n\n"; - echo "<tr class=color4>\n"; - echo " <td>Distribution name</td>\n"; - echo " <td>Distribution url</td>\n"; - echo " <td align=\"right\">Linked Tests</td>\n"; - if ($_SESSION['current']->hasPriv("admin")) - echo " <td align=\"center\">Action</td>\n"; - echo "</tr>\n\n"; - - $c = 1; - while($oRow = mysql_fetch_object($hResult)) + distribution::ObjectOutputHeader("color4"); + + for($c = 1; $oRow = mysql_fetch_object($hResult); $c++) { - if ($c % 2 == 1) { $bgcolor = 'color0'; } else { $bgcolor = 'color1'; } - $oDistribution = new distribution($oRow->distributionId); - echo "<tr class=\"$bgcolor\">\n"; - echo " <td><a href=\"".BASE."distributionView.php?iDistributionId=".$oDistribution->iDistributionId."\">","\n"; - echo $oDistribution->sName."</a></td>\n"; - echo " <td><a href=\"".$oDistribution->sUrl."\">".$oDistribution->sUrl."</a></td>\n"; - echo " <td align=\"right\">".sizeof($oDistribution->aTestingIds)."</td>\n"; - if ($_SESSION['current']->hasPriv("admin")) - { - echo " <td align=\"center\">"; - echo "[<a href='".BASE."admin/editDistribution.php?iDistributionId=".$oDistribution->iDistributionId."'>edit</a>]"; - if(!sizeof($oDistribution->aTestingIds)) - echo " [<a href='".$_SERVER['PHP_SELF']."?sSub=delete&iDistributionId=".$oDistribution->iDistributionId."'>delete</a>]"; - echo " </td>\n"; - } - echo "</tr>\n"; - $c++; + $oDistribution = distribution::ObjectGetInstanceFromRow($oRow); + + $oDistribution->display(($c % 2) ? "color0" : "color1"); } echo "</table>\n\n"; echo html_frame_end(" "); Index: appdb/include/distribution.php diff -u -p appdb/include/distribution.php:1.5 appdb/include/distribution.php:1.6 --- appdb/include/distribution.php:1.5 27 Jan 2007 0:30: 0 -0000 +++ appdb/include/distribution.php 27 Jan 2007 0:30: 0 -0000 @@ -7,7 +7,7 @@ require_once(BASE."include/util.php"); // Test class for handling Distributions. -class distribution{ +class distribution { var $iDistributionId; var $sName; var $sDescription; @@ -422,6 +422,76 @@ class distribution{ } echo "</select>\n"; } + + function ObjectOutputHeader($sClass = "") + { + $aCells = array( + "Distribution name", + "Distribution url", + array("Linked Tests", "align=\"right\"")); + + if(distribution::canEdit()) + $aCells[3] = array("Action", "align=\"center\""); + + echo html_tr($aCells, $sClass); + } + + function ObjectGetEntries($bQueued) + { + if($bQueued) + { + if(distribution::canEdit()) + { + /* Only users with edit privileges are allowed to view queued + items, so return NULL in that case */ + $sQuery = "SELECT distributionId FROM distributions + WHERE queued = '?' ORDER BY name"; + return query_parameters($sQuery, $bQueued ? "true" : "false"); + } else + return NULL; + } else + { + $sQuery = "SELECT distributionId FROM distributions + WHERE queued = '?' ORDER BY name"; + return query_parameters($sQuery, "false"); + } + } + + function ObjectGetInstanceFromRow($oRow) + { + return new distribution($oRow->distributionId); + } + + function display($sClass = "") + { + $aCells = array( + "<a href=\"".BASE."distributionView.php?iDistributionId=". + $this->iDistributionId."\">$this->sName.</a>", + "<a href=\"$this->sUrl\">$this->sUrl</a>", + array(sizeof($this->aTestingIds), "align=\"right\"")); + + if($this->canEdit()) + { + $aCells[3] = array( + "[<a href='".BASE."admin/editDistribution.php?iDistributionId=". + $this->iDistributionId."'>edit</a>]". + (!sizeof($this->aTestingIds)) ? + " [<a href='".$_SERVER['PHP_SELF']."?sSub=delete&". + "iDistributionId=$this->iDistributionId'>delete</a>]" : "", + "align=\"center\""); + } + + echo html_tr($aCells, $sClass); + } + + // Whether the user has permission to edit distributions + function canEdit() + { + if($_SESSION['current']->hasPriv("admin")) + return TRUE; + + return FALSE; + } } ?>
participants (1)
-
WineHQ