<?php | |
// votes required to be considered "approved" | |
$nvotesRequired = 3; | |
$targetMilestone="3.0.3"; | |
$targetMilestoneJPA="2.0.3"; | |
$debug = false; | |
// for reference | |
// See https://dev.eclipse.org/committers/committertools/dbo_bugs_schema.php | |
// and https://dev.eclipse.org/committers/committertools/dbo_index.php | |
if ($debug) | |
{ | |
ini_set("display_errors", "true"); | |
error_reporting (E_ALL); | |
} | |
require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_bugs_ro.class.php"; | |
$approvedList = ""; | |
$pendingList = ""; | |
?> | |
<html> | |
<head> | |
<meta | |
http-equiv="Content-Type" | |
content="text/html; charset=iso-8859-1"> | |
<link | |
rel="stylesheet" | |
href="../../../default_style.css" | |
type="text/css"> | |
<link | |
rel="stylesheet" | |
href="../../wtp.css" | |
type="text/css"> | |
<title>Web Tools 3.0.3 Bugs</title> | |
</head> | |
<body> | |
<table | |
width="100%" | |
cellspacing="5" | |
cellpadding="2" | |
border="0"> | |
<tr> | |
<td | |
width="60%" | |
align="left"><font class="indextop">wtp 3.0.3 pmc review bug list</font> <br> | |
<font class="indexsub">Web Tools 3.0.3 Bugs for PMC Review</font></td> | |
<td width="40%"><img | |
width="207" | |
hspace="50" | |
height="129" | |
align="middle" | |
src="../../images/wtplogosmall.jpg"></td> | |
</tr> | |
</table> | |
<table | |
width="100%" | |
cellspacing="5" | |
cellpadding="2" | |
border="0"> | |
<tr> | |
<td | |
valign="top" | |
bgcolor="#0080c0" | |
align="left" | |
colspan="2"><b> <font | |
face="Arial,Helvetica" | |
color="#ffffff">Introduction</font></b></td> | |
</tr> | |
<tr> | |
<td | |
valign="top" | |
align="right"> </td> | |
<td valign="top"><?php | |
echo 'This document lists bugs that require PMC approval in WTP ' . $targetMilestone . '<br />'; | |
echo ' Currently there is (are) ' . $nvotesRequired . ' vote(s) required. <br />' | |
?> <a href="http://wiki.eclipse.org/index.php/WTP_PMC_Defect_Review">The WTP PMC Review process defined.</a></td> | |
</tr> | |
</table> | |
<br> | |
<table | |
width="100%" | |
cellspacing="5" | |
cellpadding="2" | |
border="0"> | |
<tr> | |
<td | |
valign="top" | |
bgcolor="#0080c0" | |
align="left" | |
colspan="2"><b> <font | |
face="Arial,Helvetica" | |
color="#ffffff">Defect List</font></b></td> | |
</tr> | |
</table> | |
<table | |
align="center" | |
cellpadding="4" | |
width="80%" | |
border="1"> | |
<tr> | |
<th>Count</th> | |
<th>Bug</th> | |
<th>Status</th> | |
<th>Owner</th> | |
<th>Yes</th> | |
<th>No</th> | |
</tr> | |
<?php | |
# Connect to database | |
$sqlquery = "SELECT | |
BUG.bug_id, | |
USR.realname, | |
USR.login_name, | |
BUG.status_whiteboard | |
FROM | |
bugs AS BUG | |
INNER JOIN products AS PROD ON PROD.id = BUG.product_id | |
INNER JOIN profiles AS USR ON USR.userid = BUG.assigned_to | |
WHERE | |
BUG.status_whiteboard like '%PMC%' | |
AND | |
( | |
(BUG.target_milestone like '$targetMilestone%' | |
AND ( | |
PROD.name='Web Tools' | |
OR PROD.name='Java Server Faces' | |
OR PROD.name='WTP Common Tools' | |
OR PROD.name='WTP Datatools' | |
OR PROD.name='WTP EJB Tools' | |
OR PROD.name='WTP Incubator' | |
OR PROD.name='WTP Java EE Tools' | |
OR PROD.name='WTP Releng' | |
OR PROD.name='WTP ServerTools' | |
OR PROD.name='WTP Source Editing' | |
OR PROD.name='WTP Webservices' | |
OR PROD.name='WTP Website' | |
) | |
) | |
OR | |
( | |
BUG.target_milestone like '$targetMilestoneJPA%' | |
AND PROD.name='Dali JPA Tools' | |
) | |
) | |
ORDER BY | |
BUG.bug_id"; | |
$dbc = new DBConnectionBugs(); | |
$dbh = $dbc->connect(); | |
$rs = mysql_query($sqlquery, $dbh); | |
if(mysql_errno($dbh) > 0) { | |
echo "There was an error processing this request <br />". | |
$dbc->disconnect(); | |
exit; | |
} | |
$rowcount = 0; | |
while($myrow = mysql_fetch_assoc($rs)) | |
{ | |
$rowcount++; | |
if ($debug) { | |
echo "Debug: myrow: " ; | |
echo print_r($myrow) ; | |
echo " <br />"; | |
} | |
echo "<tr>"; | |
echo "<td align='right'>".$rowcount."</td>"; | |
echo "<td align='center'><a href=\"https://bugs.eclipse.org/bugs/show_bug.cgi?id=".$myrow['bug_id']."\">".$myrow['bug_id']."</a></td>"; | |
echo "<td>"; | |
$yes = ""; | |
$no = ""; | |
$pmc_approved = stripos($myrow['status_whiteboard'], 'PMC_approved'); | |
$sqlquery3 = "SELECT | |
flags.type_id, | |
flags.setter_id, | |
flags.status | |
FROM | |
flags | |
WHERE | |
(flags.setter_id='583' | |
OR flags.setter_id='550' | |
OR flags.setter_id='12789' | |
OR flags.setter_id='17882' | |
OR flags.setter_id='18449' | |
OR flags.setter_id='26550') | |
AND flags.bug_id=".$myrow['bug_id']; | |
$rs3 = mysql_query($sqlquery3, $dbh); | |
if(mysql_errno($dbh) <= 0) | |
{ | |
$votes=0; | |
while($myrow3 = mysql_fetch_assoc($rs3)) { | |
if ($debug) { | |
echo "Debug: myrow3: " ; echo print_r($myrow3) ; echo " <br />"; | |
} | |
$sqlquery4 = "SELECT | |
flagtypes.name | |
FROM | |
flagtypes | |
WHERE | |
flagtypes.name='pmc_approved' | |
AND flagtypes.id=".$myrow3['type_id']; | |
$rs4 = mysql_query($sqlquery4, $dbh); | |
while ($myrow4 = mysql_fetch_assoc($rs4)) { | |
if ($debug) { | |
echo "Debug: myrow4: " ; echo print_r($myrow4) ; echo " <br />"; | |
} | |
if($myrow3['setter_id']=="583") { | |
$realname="David Williams"; | |
} else if($myrow3['setter_id']=="550") { | |
$realname="Tim deBoer"; | |
} else if($myrow3['setter_id']=="12789") { | |
$realname="Naci Dai"; | |
} else if($myrow3['setter_id']=="17882") { | |
$realname="Neil Hauge"; | |
} else if($myrow3['setter_id']=="18449") { | |
$realname="Raghu Srinivasan"; | |
} else if ($myrow3['setter_id']=="26550") { | |
$realname="Kaloyan Raev"; | |
} else $realname = "UNKNOWN!"; | |
if ($myrow3['status']=="+") { | |
if (strpos($yes, $realname) === false) { | |
if ($votes > 0) { | |
$yes = $yes . "<br />" . $realname; | |
} | |
else { | |
$yes = $realname; | |
} | |
// don't increment, if already veto'd | |
if ($votes >= 0) { | |
$votes++; | |
} | |
} | |
} | |
else if ($pmc_approved === false && $myrow3['status']=="-") { | |
if ($vote < 0) { | |
$no = $no . "<br>" . $realname; | |
} | |
else { | |
$no = $realname; | |
} | |
$votes = -1; | |
break; | |
} | |
} | |
} | |
if ($debug) { | |
echo "Debug: votes: $votes required: $nvotesRequired <br />"; | |
} | |
if ($votes < 0) { | |
echo "<font color=\"red\"><b>Deferred</b></font>"; | |
} | |
else if ($votes >= $nvotesRequired || (!($pmc_approved === false))) { | |
if (strlen($approvedList) > 0) { | |
$approvedList=$approvedList . "," . $myrow['bug_id']; | |
} else { | |
$approvedList=$myrow['bug_id']; | |
} | |
echo "<font color=\"green\"><b>Approved</b></font>"; | |
} | |
else if ($votes > 0) { | |
if (strlen($pendingList) > 0) { | |
$pendingList=$pendingList . "," . $myrow['bug_id']; | |
} else { | |
$pendingList=$myrow['bug_id']; | |
} | |
// echo "<font color=\"yellow\"><b>Tentatively Approved</b></font>"; | |
echo "<font color=\"yellow\"><b>Pending...</b></font>"; | |
} | |
else { | |
// $votes == 0 | |
if (strlen($pendingList) > 0) { | |
$pendingList=$pendingList . "," . $myrow['bug_id']; | |
} else { | |
$pendingList=$myrow['bug_id']; | |
} | |
echo "Pending..."; | |
} | |
} | |
else { | |
echo "Error occured on sqlquery3: . " . mysql_errno($dbh) . "<br />"; | |
echo "sqlquery: " . mysql_info($dbh) . "<br />"; | |
} | |
$rs3 = null; | |
echo "</td>"; | |
$owner = $myrow['realname']; | |
if (strlen($owner) > 0) { | |
echo "<td>".$owner."</td>"; | |
} | |
else { | |
echo "<td>".$myrow['login_name']."</td>"; | |
} | |
echo "<td>".$yes." </td>"; | |
echo "<td>".$no." </td>"; | |
echo "</tr>"; | |
} | |
$dbc->disconnect(); | |
$rs = null; | |
$dbh = null; | |
$dbc = null; | |
?> | |
</table> | |
<?php | |
if (strlen($pendingList) > 0 || strlen($approvedList) > 0) { | |
echo "<p>You can use"; | |
if (strlen($pendingList) > 0) { | |
echo " this <a href=\"https://bugs.eclipse.org/bugs/buglist.cgi?bug_id=" . $pendingList ."\">pending list</a>"; | |
} | |
if (strlen($pendingList) > 0 && strlen($approvedList) > 0) { | |
echo " or "; | |
} | |
if (strlen($approvedList) > 0) { | |
echo " this <a href=\"https://bugs.eclipse.org/bugs/buglist.cgi?bug_id=" . $approvedList ."\">approved list</a>"; | |
} | |
echo " for above table to first list all the bugs in that table with the bugzilla web interface, and then narrow or sort the result how ever you would like.</p>"; | |
} | |
?> | |
</body> | |
</html> |