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 '
', + '

', $release['release'], '

', + '
', + '
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();