blob: 75aaed0f59be8e019cdf89510c6d7a747ba20910 [file] [log] [blame]
<html>
<head>
<title>Simultaneous Summary Matrix</title>
</head>
<?php
require('/home/data/httpd/eclipse-php-classes/system/dbconnection_portal_ro.class.php'); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu();
include('SimultaneousReleaseFunctions.php');
class ReleaseData {
var $projects = array();
function &getProjectReleaseData($id) {
return $projects[$id];
}
}
class ProjectReleaseData {
var $id;
var $data = array();
function getStatus($key) {
return $data[$key];
}
}
function getReleaseData() {
global $App;
$query = "select
distinct ProjectID
from
ProjectInfo,
ProjectInfoValues
where
MainKey = 'simultaneousrelease'
and
Subkey = 'indigo'
and
Value = 1
and
ProjectInfo.ProjectInfoID = ProjectInfoValues.ProjectInfoID
order by ProjectID
";
$results = $App->eclipse_sql($query);
$releaseData = new ReleaseData();
while($row = mysql_fetch_assoc($results)){
$id = $row['ProjectID'];
$projectReleaseData = new ProjectReleaseData();
$projectReleaseData->id = $id;
$releaseData->projects[$id] = $projectReleaseData;
}
$dbhc = new DBConnectionPortalRO();
$dbh = $dbhc->connect();
$query = "select projectid, track_key, track_value, exception, therelease from simultaneous_release_tracker";
$results = mysql_query($query,$dbh);
while ($row = mysql_fetch_assoc($results)) {
$id = $row['projectid'];
$key = $row['track_key'];
$releaseData->projects[$id]->data[$key] = $row;
}
// Array
//(
// [projectid] => modeling.emf.transaction
// [track_key] => unit_tests
// [track_value] => on
// [exception] =>
// [therelease] =>
//)
return $releaseData;
}
$releaseData = getReleaseData();
$all_fields = get_fields();
print_r($all_fields);
ob_start();
?>
<!-- include empty lef nav col for now -->
<div id="maincontent">
<div id="midcolumn">
<div style='float: left; margin-left: 50px; margin-right: 50px;'>
<a href="http://eclipse.org/indigo/planning/SimultaneousRleaseOverview.php">Back to Project List</a>
<br>
<?php
if(isset($_GET['showallprojects'])){
?><a href="?">Top Level Overview Grid</a><?php
}else{
?><a href="?showallprojects=true">All Projects Overview Grid</a><?php
}
?>
</div>
<div>
<h1><?= $pageTitle ?></h1>
<h2>Simultaneous Release Compliance Grid</h2>
<p style='width: 60%; margin-left: 50px;'>
This page is to summarize progress towards the yearly <a target="_blank" href="http://wiki.eclipse.org/Indigo/Simultaneous_Release_Plan">Simultaneous Release</a> as the data has been provided by the projects, at the <a target="_blank" href="https://dev.eclipse.org/portal/myfoundation/portal/portal.php">Eclipse Foundations Portal Tracking Tool</a>. For details on the requirements see <a target="_blank" href="http://www.eclipse.org/indigo/planning/EclipseSimultaneousRelease.php">requirements for the Simultaneous Release</a>.
<br>
If questions please see <a target="_blank" href="http://wiki.eclipse.org/SimRel/Simultaneous_Release_Tracker_FAQ">Simultaneous Release Tracker FAQ</a> or ask the question on <a href="mailto:cross-project-issues-dev@eclipse.org">cross-project dev list</a>.
</p>
</div>
<table BORDER=2>
<tr>
<td>&nbsp;</td>
<?php
/*
* show the projects along the top
*/
foreach($releaseData->projects as $id => $project) {
$pretty_id = str_replace(".","<br>",$id);
echo "<td ALIGN=\"center\">";
echo "<a href=\"http://eclipse.org/indigo/planning/SimultaneousReleaseOverview.php?action=project&projectid=$id\">$pretty_id</a>";
}
foreach($all_fields as $fieldlabel => $fields) {
if(empty($fields['fields'])) continue;
echo "<tr>";
echo "<td ALIGN=\"center\">". str_replace("-"," ",$fields['name']) . "</td>";
foreach($releaseData->projects as $project) {
$status = $project->getStatus($fields['fields'][0]['key']);
echo "<td>" . $status . "</td>";
}
echo "</tr>";
}
/*
* Due to some restrictions on database access, this script cannot connect to
* the Foundation database to get the IP Log and Release Documentation information.
* Instead, we have to connect via Ajax call from the browser and do a little
* JavaScript magic. At this point, we just insert a row into the table to
* act as a placeholder for this information. The script at the bottom of this
* file takes care of population.
*/
echo "<tr><td align=\"centre\">IP Log</td>";
foreach($releaseData as $id => $project) {
echo "<td align=\"center\"><div id=\"$id-iplog\"><span style='color:yellow; font-size: 150%;'>&diams;</span></div></td>";
}
echo "</tr>";
echo "<tr><td align=\"centre\">Release Docuware</td>";
foreach($releaseData as $id => $projectid) {
echo "<td align=\"center\"><div id=\"$id-docuware\"><span style='color:yellow; font-size: 150%;'>&diams;</span></div></td>";
}
echo "</tr>";
?>
</table>
<?php include('SimultaneousReleaseKey.php');?>
</div>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
print $html;
?>
<script src="http://yui.yahooapis.com/2.8.0r4/build/yahoo/yahoo.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/event/event.js"></script>
<script src="http://yui.yahooapis.com/2.8.0r4/build/connection/connection.js"></script>
<script>
function successHandler(o){
var root = o.responseXML.documentElement;
var reviews = root.getElementsByTagName('review');
var index = 0;
for(index=0;index<reviews.length;index++) {
var review = reviews[index];
var name = review.getAttribute("name");
var id = review.getAttribute("projectid");
var iplog = review.getAttribute("iplog");
var iplog_date = review.getAttribute("iplog-date");
var docuware = review.getAttribute("docuware");
var docuware_date = review.getAttribute("docuware-date");
var iplog_div = document.getElementById(id + '-iplog');
if (iplog_div) {
var status = "<span style='color:green; font-size: 150%;'>&diams;</span>";
if (!iplog) status = "<span style='color:lightgreen; font-size: 150%;'>&diams;</span>";
if (!iplog_date) status = "<span style='color:red; font-size: 150%;'>&diams;</span>";
iplog_div.innerHTML = status;
}
var docuware_div = document.getElementById(id + '-docuware');
if (docuware_div) {
var status = "<span style='color:green; font-size: 150%;'>&diams;</span>";
if (!docuware) status = "<span style='color:lightgreen; font-size: 150%;'>&diams;</span>";
if (!docuware_date) status = "<span style='color:red; font-size: 150%;'>&diams;</span>";
docuware_div.innerHTML = status;
}
}
}
YAHOO.util.Connect.asyncRequest('GET', 'http://<?= $_SERVER['SERVER_NAME'] ?>/projects/xml/review_status.php?name=Indigo', { success:successHandler });
</script>
</html>