Use more efficient means of rendering reviews.
Change-Id: I4feb02957daf71433f1e54d9c228d249a21a6e34
diff --git a/classes/Review.class.inc b/classes/Review.class.inc
index c2ab12b..7c52ca0 100644
--- a/classes/Review.class.inc
+++ b/classes/Review.class.inc
@@ -59,6 +59,18 @@
});
}
+ public static function getAll($callable) {
+ $sql = "
+ select
+ project, name, date, type, status, url
+ from ProjectReviews
+ order by date desc";
+
+ query('dashboard', $sql, array(), function($row) use (&$callable) {
+ call_user_func($callable, new self($row));
+ });
+ }
+
private static function getOne($sql, $args) {
$review = null;
query('dashboard', $sql, $args, function($row) use (&$review) {
diff --git a/tools/reviews.php b/tools/reviews.php
index a6cb283..fdb3605 100644
--- a/tools/reviews.php
+++ b/tools/reviews.php
@@ -21,11 +21,9 @@
$Menu = new Menu();
include($App->getProjectCommon());
+$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/projects/web-parts/projects.css"/>');
-require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/classes/Review.class.php");
-
-$smallIconDir = "http://dev.eclipse.org/small_icons";
-$reviews = get_reviews();
+require_once(dirname(__FILE__). "/../classes/Review.class.inc");
ob_start();
@@ -41,37 +39,22 @@
<?php
$nested = array();
-foreach($reviews as $review) {
- $reviewDate = $review->getReviewDate();
-
- if ($reviewDate) {
- // Format the date.
- $reviewDate = date('Y-m-d', $reviewDate);
- $nested[$reviewDate][] = $review;
- } else {
- $reviewDate = 'unscheduled';
- }
-}
+Review::getAll(function ($review) use (&$nested) {
+ $nested[date('Y-m-d', $review->getDate())][] = $review;
+});
foreach($nested as $date => $reviews) {
$reviewDate = $App->getFormattedDate(strtotime($date), 'long');
echo "<h3>$reviewDate</h3>";
- echo "<table width=\"100%\"><tbody>";
+ echo "<table class=\"review-table\"><tbody>";
foreach($reviews as $review) {
- $project = $review->getProjectName();
- if ($url = $review->getProjectUrl())
- $project = "<a href=\"$url\">$project</a>";
-
- $description = $review->getReviewName();
- if ($url = $review->getSlidesUrl())
- $description = "<a href=\"$url\">$description</a>";
-
- if ($review->isSuccessful()) $state = 'Complete';
- else if ($review->isWithdrawn()) $state = 'Withdrawn';
- else $state = 'Ongoing';
-
- echo "<tr><td width=\"60%\">$project</td><td width=\"25%\">$description</td><td width=\"15%\">$state</td></tr>";
+ $project = Project::getProject($review->getProjectId());
+ print "<tr>";
+ print "<td><span class=\"project}\"><a href=\"{$project->getUrl()}\">{$project->getFormalName()}</a></span></td>";
+ print "<td><span class=\"review-{$review->getStatus()}\"><a href=\"{$review->getUrl()}\">{$review->getName()}</a></span></td>";
+ print "<td><span>{$review->getStatus()}</span></td>";
+ print "</tr>";
}
echo "</tbody></table>";
}
diff --git a/web-parts/activity.php b/web-parts/activity.php
index 2babef2..7a6d631 100755
--- a/web-parts/activity.php
+++ b/web-parts/activity.php
@@ -37,7 +37,7 @@
foreach ($list as $review) {
$project = Project::getProject($review->getProjectId());
- print "<li><span class=\"project-{$review->getStatus()}\"><a href=\"{$review->getUrl()}\">{$project->getFormalName()} {$review->getName()}</a></span></li>";
+ print "<li><span class=\"review-{$review->getStatus()}\"><a href=\"{$review->getUrl()}\">{$project->getFormalName()} {$review->getName()}</a></span></li>";
}
print "</ul>";
diff --git a/web-parts/projects.css b/web-parts/projects.css
index 2057c32..26dcdf2 100644
--- a/web-parts/projects.css
+++ b/web-parts/projects.css
@@ -7,8 +7,22 @@
*
* SPDX-License-Identifier: EPL-2.0
********************************************************************************/
-.project-success {
+.review-success {
font-weight: bold;
background: url(/projects/images/ok.gif) 100% no-repeat;
padding-right: 20px;
+}
+
+.review-table {
+ width: 100%;
+}
+
+.review-table td:nth-child(1) {
+ width: 40%;
+}
+.review-table td:nth-child(2) {
+ width: 40%;
+}
+.review-table td:nth-child(3) {
+ width: 20%;
}
\ No newline at end of file
diff --git a/web-parts/reviews.php b/web-parts/reviews.php
index 8819f1b..7c774ee 100755
--- a/web-parts/reviews.php
+++ b/web-parts/reviews.php
@@ -65,7 +65,7 @@
foreach ($list as $review) {
$project = Project::getProject($review->getProjectId());
- print "<li><span class=\"project-{$review->getStatus()}\"><a href=\"{$review->getUrl()}\">{$project->getFormalName()} {$review->getName()}</a></span></li>";
+ print "<li><span class=\"review-{$review->getStatus()}\"><a href=\"{$review->getUrl()}\">{$project->getFormalName()} {$review->getName()}</a></span></li>";
}
print "</ul>";