blob: 5546a4dd48f6122e1c1ce5c01d2e66d8f84552b8 [file] [log] [blame]
<?php
require_once("/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/stats/hostname.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/stats/common_queries.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/dashboard/constants.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/dashboard/utils.php");
$dbc_cache = new DBConnectionDashboard();
$db_handle = $dbc_cache->connect();
if (!isset($_GET['project']) || $_GET['project'] == ""){
header('Location: ./index.php');
}
$project = $_GET['project'];
// Get last date available for $project in DB
$mysql_date = get_last_date($db_handle);
// Get info for the project
$query = "SELECT * FROM ".stats_table()." WHERE project_id = \"".$project."\" AND stats_date = \"".$mysql_date."\"";
$result = mysql_query($query,$db_handle);
$row = mysql_fetch_assoc($result);
// Liveness
$liveness = $row['liveness'];
// Bugs stats
$bugs = $row['bugs_total'];
$delta7 = $row['bugs_7_delta'];
$delta30 = $row['bugs_30_delta'];
$delta180 = $row['bugs_180_delta'];
$perc7 = $row['bugs_7_percentage'];
$perc30 = $row['bugs_30_percentage'];
$perc180 = $row['bugs_180_percentage'];
$gl7 = $row['bugs_7_gainloss'];
$gl30 = $row['bugs_30_gainloss'];
$gl180 = $row['bugs_180_gainloss'];
// Newsgroups stats
$num_posts_7 = $row['news_7_number_posts'];
$num_posts_30 = $row['news_30_number_posts'];
$avg_posts_7 = $row['news_7_average_posts'];
$avg_posts_30 = $row['news_30_average_posts'];
$avg_time_answer_7 = $row['news_7_answer_average_time'];
$avg_time_answer_30 = $row['news_30_answer_average_time'];
$unanswered_posts_7 = $row['news_7_unanswered_number'];
$unanswered_posts_30 = $row['news_30_unanswered_number'];
$insider_posts_7 = $row['news_7_insider_posts'];
$insider_posts_30 = $row['news_30_insider_posts'];
// Mail stats
$mail_posts_7 = $row['mail_7_number_posts'];
$mail_posts_30 = $row['mail_30_number_posts'];
$mail_posts_180 = $row['mail_180_number_posts'];
$mail_average_posts_7 = $row['mail_7_average_posts'];
$mail_average_posts_30 = $row['mail_30_average_posts'];
$mail_average_posts_180 = $row['mail_180_average_posts'];
$mail_average_subscribers_7 = $row['mail_7_average_subscribers'];
$mail_average_subscribers_30 = $row['mail_30_average_subscribers'];
$mail_average_subscribers_180 = $row['mail_180_average_subscribers'];
function num_posts($posts){
if ($posts == -1) // Newsgroup does not exist
return "N/A";
else if ($posts == 0) // No posts in newsgroup or since date
return "no posts";
else
return $posts;
}
function avg_posts($posts,$avg){
if ($posts < 0)
return "N/A";
else
return $avg;
}
function time_answer($posts,$answer){
if ($posts < 0)
return "N/A";
else if ($answer == 0 || $answer == -1)
return "no answers";
else
return realDate($answer);
}
function unanswered_posts($posts,$no_answer){
if ($posts < 0)
return "N/A";
# else if ($posts == 0)
# return 0;
else
return $no_answer;
}
function check_mail($var){
if ($var == -1) // No mailing list available
return "N/A";
else
return $var;
}
?>
<?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($App->getProjectCommon()); # All on the same line to unclutter the user's desktop'
$pageTitle = "Dashboard for " . $project;
$pageKeywords = "dashboard";
$pageAuthor = "Bjorn Freeman-Benson Nov 20/05";
ob_start();
?>
<div id="maincontent">
<div id="midcolumn">
<h1><?= $pageTitle ?></h1>
<table border=0>
<tr>
<td>&nbsp;</td>
<td colspan="3">
<p align="center"><font size="+1"><b><a href="descriptions.php">Liveness:</a></b> <?= $liveness ?></font></p>
</td>
</tr>
<tr>
<td colspan="4">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan=3 align=center style="border-bottom-style: dotted; border-bottom-width: 1">
<font size=+1><b><a href="descriptions.php">Bug fix rate</a></b></font>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td align=center><? gauge($bugs, $delta7, $perc7); ?></td>
<td align=center><? gauge($bugs, $delta30, $perc30); ?></td>
<td align=center><? gauge($bugs, $delta180, $perc180); ?></td>
</tr>
<tr>
<td>&nbsp;</td>
<td align=center>Last week<br>(<?= $perc7 ?>%, <?= $gl7 ?> bugs)</td>
<td align=center>Last month<br>(<?= $perc30 ?>%, <?= $gl30 ?> bugs)</td>
<td align=center>Last half year<br>(<?= $perc180 ?>%, <?= $gl180 ?> bugs)</td>
</tr>
<tr>
<td colspan=4>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan=3 align=center style="border-bottom-style: dotted; border-bottom-width: 1">
<font size=+1><b><a href="descriptions.php">Newsgroup statistics</a></b></font>
</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><b>Last week</b></td>
<td align="center"><b>Last month</b></td>
</tr>
<tr bgcolor="#eaecef">
<td align="right"><b>Number of posts</b></td>
<td align="center" bgcolor="<?= bgcolor_news($num_posts_7, POSTS_7_RED, POSTS_7_GREEN) ?>"><?= num_posts($num_posts_7) ?></td>
<td align="center" bgcolor="<?= bgcolor_news($num_posts_30, POSTS_30_RED, POSTS_30_GREEN) ?>"><?= num_posts($num_posts_30) ?></td>
</tr>
<tr>
<td align="right"><b>Posts per day</b></td>
<td align="center"><?= avg_posts($num_posts_7,$avg_posts_7) ?></td>
<td align="center"><?= avg_posts($num_posts_30,$avg_posts_30) ?></td>
</tr>
<tr bgcolor="#eaecef">
<td align="right"><b>Time to answer a post</b></td>
<td align="center" bgcolor="<?=bgcolor_news_answers($avg_time_answer_7, $num_posts_7)?>"><?= time_answer($num_posts_7,$avg_time_answer_7) ?></td>
<td align="center" bgcolor="<?=bgcolor_news_answers($avg_time_answer_30, $num_posts_30)?>"><?= time_answer($num_posts_30,$avg_time_answer_30) ?></td>
</tr>
<tr>
<td align="right"><b>Unanswered posts</b></td>
<td align="center"><?= unanswered_posts($num_posts_7,$unanswered_posts_7) ?></td>
<td align="center"><?= unanswered_posts($num_posts_30,$unanswered_posts_30) ?></td>
</tr>
<tr>
<td colspan=4>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan=3 align=center style="border-bottom-style: dotted; border-bottom-width: 1">
<font size=+1><b><a href="descriptions.php">Mailing lists statistics</a></b></font>
</td>
</tr>
<tr>
<td align="center">&nbsp;</td>
<td align="center"><b>Last week</b></td>
<td align="center"><b>Last month</b></td>
<td align="center"><b>Last half year</b></td>
</tr>
<tr bgcolor="#eaecef">
<td align="right"><b>Number of posts</b></td>
<td align="center"><?= check_mail($mail_posts_7) ?></td>
<td align="center"><?= check_mail($mail_posts_30) ?></td>
<td align="center"><?= check_mail($mail_posts_180) ?></td>
</tr>
<tr>
<td align="right"><b>Average # of posts</b></td>
<td align="center"><?= check_mail($mail_average_posts_7) ?></td>
<td align="center"><?= check_mail($mail_average_posts_30) ?></td>
<td align="center"><?= check_mail($mail_average_posts_180) ?></td>
</tr>
<tr bgcolor="#eaecef">
<td align="right"><b>Average # of subscribers</b></td>
<td align="center"><?= check_mail($mail_average_subscribers_7) ?></td>
<td align="center"><?= check_mail($mail_average_subscribers_30) ?></td>
<td align="center"><?= check_mail($mail_average_subscribers_180) ?></td>
</tr>
<tr>
<td colspan=4>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td align="center">
<a style="text-decoration: none;" href="dashboard_csv_download.php?project=<?= $project ?>">
<div style="border:1px solid #0080C0; padding:5px; background: #FFFFFF; width:200px;">Download statistics to CSV file</div>
</a>
</td>
<td align="center">
<a style="text-decoration: none;" href="dashboard_log_download.php?project=<?= $project ?>">
<div style="border:1px solid #0080C0; padding:5px; background: #FFFFFF; width:200px;">Download log to text file</div>
</a>
</td>
<td>&nbsp;</td>
</tr>
</table>
<?
$rs = null;
$dbh_cache = null;
$dbc_cache = null;
?>
<br><br>
<hr style="size: 50%; text-align:center">
<br><br>
<?php
// top bugs as side element
require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/common/project_bugs.class.php");
$the_bugs = new ProjectBugs($project);
include $_SERVER['DOCUMENT_ROOT'] . "/projects/common/top_ten.php";
?>
<font color="grey">Statistics collected on <?= $mysql_date ?> </font>
</div>
</div>
<?php
# Paste your HTML content between the EOHTML markers!
$html = ob_get_contents();
ob_end_clean();
# Generate the web page
$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>