Version matrix
Signed-off-by: Eike Stepper <stepper@esc-net.de>
diff --git a/downloads/versions.css b/downloads/versions.css
index 9a87ca6..5a27f98 100644
--- a/downloads/versions.css
+++ b/downloads/versions.css
@@ -44,3 +44,11 @@
text-align: center;
}
+td.hl {
+ background-color: #C0C0FF;
+}
+
+th.hl {
+ background-color: #C0C0FF;
+}
+
diff --git a/downloads/versions.php b/downloads/versions.php
index ab056ff..e41d20a 100644
--- a/downloads/versions.php
+++ b/downloads/versions.php
@@ -17,6 +17,9 @@
$releases = [];
$bundles = [];
+$selectedRelease = isset($_GET["sr"]) ? $_GET["sr"] : null;
+$selectedBundle = isset($_GET["sb"]) ? $_GET["sb"] : null;
+
$lines = explode("\n", file_get_contents("$drops/drops.txt"));
sort($lines);
$lines = array_reverse($lines);
@@ -93,37 +96,53 @@
{
$drop = $info["drop"];
$label = str_replace("-", " ", $release);
- print " <th><h3>CDO $label</h3></th>\n";
+ $href = "?sr=$release";
+ if ($selectedBundle)
+ {
+ $href .= "&sb=$selectedBundle";
+ }
+
+ print " <th><h3><a href=\"$href\">CDO $label</a></h3></th>\n";
}
print " </tr>\n";
-headLine($releases, "Build", "drop", function($v) { $l = simpleDate($v); return "<a href=\"https://download.eclipse.org/modeling/emf/cdo/drops/$v\" title=\"CDO $v Downloads\">$l</a>"; });
-headLine($releases, "Commit", "commit", function($v) { $l = substr($v, 0, 7); return "<a href=\"https://git.eclipse.org/c/cdo/cdo.git/commit/?id=$v\">$l</a>"; });
-headLine($releases, "Simrel", "train", function($v) { return "<a href=\"https://www.eclipse.org/downloads/packages/release/$v\">$v</a>"; });
-headLine($releases, "Eclipse", "eclipse");
-headLine($releases, "EMF", "emf");
+headLine("Build", "drop", function($v) { $l = simpleDate($v); return "<a href=\"https://download.eclipse.org/modeling/emf/cdo/drops/$v\" title=\"CDO $v Downloads\">$l</a>"; });
+headLine("Commit", "commit", function($v) { $l = substr($v, 0, 7); return "<a href=\"https://git.eclipse.org/c/cdo/cdo.git/commit/?id=$v\">$l</a>"; });
+headLine("Simrel", "train", function($v) { return "<a href=\"https://www.eclipse.org/downloads/packages/release/$v\">$v</a>"; });
+headLine("Eclipse", "eclipse");
+headLine("EMF", "emf");
print " </thead>\n";
print " <tbody>\n";
foreach ($bundles as $bundle)
{
+ $clazz = $bundle == $selectedBundle ? " class=\"hl\"" : "";
+
+ $href = "?sb=$bundle";
+ if ($selectedRelease)
+ {
+ $href .= "&sr=$selectedRelease";
+ }
+
print " <tr>\n";
- print " <th scope=\"row\">$bundle</th>\n";
+ print " <th scope=\"row\"$clazz><a href=\"$href\">$bundle</a></th>\n";
foreach ($releases as $release => $info)
{
+ $clazz = $release == $selectedRelease || $bundle == $selectedBundle ? " class=\"hl\"" : "";
+
$versions = $info["versions"];
if (isset($versions[$bundle]))
{
$version = $versions[$bundle];
$file = $bundle . "_" . $version . ".jar";
- print " <td><a href=\"https://download.eclipse.org/modeling/emf/cdo/drops/$drop/plugins/$file\" title=\"CDO $release → $file\">" . simpleVersion($version) . "</a></td>\n";
+ print " <td$clazz><a href=\"https://download.eclipse.org/modeling/emf/cdo/drops/$drop/plugins/$file\" title=\"CDO $release → $file\">" . simpleVersion($version) . "</a></td>\n";
}
else
{
- print " <td> </td>\n";
+ print " <td$clazz> </td>\n";
}
}
@@ -135,13 +154,17 @@
print '</div>';
-function headLine($releases, $label, $field, callable $formatter = null)
+function headLine($label, $field, callable $formatter = null)
{
+ global $releases, $selectedRelease;
+
print " <tr>\n";
print " <th scope=\"row\">$label</th>\n";
foreach ($releases as $release => $info)
{
+ $clazz = $release == $selectedRelease ? " class=\"hl\"" : "";
+
$value = $info[$field];
if ($formatter)
@@ -149,7 +172,7 @@
$value = $formatter($value);
}
- print " <td>$value</td>\n";
+ print " <td$clazz>$value</td>\n";
}
print " </tr>\n";