diff --git a/releases/.htaccess b/releases/.htaccess
new file mode 100644
index 0000000..a47e7e8
--- /dev/null
+++ b/releases/.htaccess
@@ -0,0 +1,5 @@
+Options -Multiviews
+
+RewriteEngine On
+
+DirectoryIndex list.php
\ No newline at end of file
diff --git a/releases/list.php b/releases/list.php
new file mode 100644
index 0000000..5972eda
--- /dev/null
+++ b/releases/list.php
@@ -0,0 +1,76 @@
+getStdlibReleases();
+ } catch (HttpException $e) {
+ $error_message = 'Failed to retrieve release list';
+ $error_description = 'The list of releases could not be read. API error was: "' . $e->getMessage() . '"';
+ break;
+ }
+
+ $releases = array();
+ foreach ($releases_versions AS $release) {
+ try {
+ $releases[] = $api->describeStdlibRelease($release);
+ } catch (HttpException $e) {
+ $error_message = 'Failed to retrieve release details';
+ $error_description = 'The details on release "' . $release . '" could not be read. API error was: "' . $e->getMessage() . '"';
+ break;
+ }
+ }
+
+ $error = false;
+}
+?>
+
+
+
+
+
+ ';
+ foreach ($releases AS $release) {
+ echo '
',
+ '',
+ '
',
+ '- Date
- ', $release['date'], '
',
+ '- Published
- ', $release['published'] ? 'yes' : 'no', '
',
+ '- Description
- ', $release['description'] ? $release['description'] : '(none given)', '
',
+ '- Link
- ▶ View details ▶
',
+ '
';
+ }
+ echo '
';
+ }
+ ?>
+
+
+
+
+
\ No newline at end of file
diff --git a/style/releases/list.scss b/style/releases/list.scss
new file mode 100644
index 0000000..9a071bb
--- /dev/null
+++ b/style/releases/list.scss
@@ -0,0 +1,17 @@
+@import "../imports/item-list.scss";
+
+#release-list {
+ dd.release-published {
+ background-color: lightgreen;
+ }
+
+ dd.release-unpublished {
+ background-color: #FFFF73;
+ }
+
+ @extend %item-list;
+
+ .release-entry {
+ @extend %item-list-entry;
+ }
+}
\ No newline at end of file
diff --git a/util/ALD.php b/util/ALD.php
index 2d42946..bf97e02 100644
--- a/util/ALD.php
+++ b/util/ALD.php
@@ -89,6 +89,14 @@ public function loadItem($id)
return $this->_Request( CURLOPT_HTTPGET, "/items/describe/$id", array('Accept: application/x-ald-package') );
}
+ public function getStdlibReleases() {
+ return json_decode( $this->_Request( CURLOPT_HTTPGET, '/stdlib/releases/list', array('Accept: application/json') ), true );
+ }
+
+ public function describeStdlibRelease($release) {
+ return json_decode( $this->_Request( CURLOPT_HTTPGET, '/stdlib/releases/describe/' . $release, array('Accept: application/json') ), true );
+ }
+
private function _Request($method, $url, $header, $data = NULL, $user = NULL, $password = NULL)
{
$conn = curl_init();