| <?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> </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"> </td> |
| </tr> |
| <tr> |
| <td> </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> </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> </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> </td> |
| </tr> |
| <tr> |
| <td> </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"> </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> </td> |
| </tr> |
| <tr> |
| <td> </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"> </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> </td> |
| </tr> |
| <tr> |
| <td> </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> </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); |
| ?> |