summaryrefslogtreecommitdiffstats
path: root/common/html-coverpage/static/rtems/js/catalogue.js
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-01-11 15:50:59 +1100
committerChris Johns <chrisj@rtems.org>2017-01-11 15:56:04 +1100
commitecf82d1b3d3a825f0340fd12f0bbe49a5139c31e (patch)
tree517a17f4cb2fa87daa303d82a5978602978303d7 /common/html-coverpage/static/rtems/js/catalogue.js
parentwaf: Add a title to the XML Catalogue. (diff)
downloadrtems-docs-ecf82d1b3d3a825f0340fd12f0bbe49a5139c31e.tar.bz2
html: Add support for an HTML cover page for releases.
Diffstat (limited to '')
-rw-r--r--common/html-coverpage/static/rtems/js/catalogue.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/common/html-coverpage/static/rtems/js/catalogue.js b/common/html-coverpage/static/rtems/js/catalogue.js
new file mode 100644
index 0000000..d54def2
--- /dev/null
+++ b/common/html-coverpage/static/rtems/js/catalogue.js
@@ -0,0 +1,76 @@
+/*!
+ * Catalogue 0.1
+ * Copyright 2017 Chris Johns <chrisj@rtems.org>
+ * Licensed under the MIT license
+ */
+
+function parseCatalogue(xml) {
+ if (window.DOMParser)
+ {
+ parser = new DOMParser();
+ xmlDoc = parser.parseFromString(xml, "text/xml");
+ }
+ else // Internet Explorer
+ {
+ xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+ xmlDoc.async = false;
+ xmlDoc.loadXML(xml);
+ }
+ return xmlDoc;
+}
+
+function catalogueHeader(date) {
+ return '<table class="table table-condensed table-nonfluid">\n' +
+ ' <tbody>\n' +
+ ' <thead><tr><th>Built: ' + date + '</th><th>PDF</th><th>Single Page</th></tr></thead>\n';
+}
+function catalogueFooter() {
+ return ' </tbody>\n' +
+ '</table>\n';
+}
+
+function loadCatalogue(path) {
+ var el_cat_title = $('#rtems-catalogue-title');
+ var el_cat = $('#rtems-catalogue');
+
+ var f = $.get(path, function(xml) {
+ /*
+ * Use jquery as XMLDocument is consider not stable on Firefox's web site.
+ */
+ var pdfIcon = 'static/images/Adobe_PDF_file_icon_32x32.png';
+ var htmlIcon = 'static/images/html-xxl.png';
+ var docs = $(xml).find('rtems-docs');
+ var date = $(docs).attr('date');
+ var title = $(docs).find('catalogue');
+ var table = catalogueHeader(date);
+ $(docs).find('doc').each(function() {
+ var name = $(this).find('name').text();
+ var title = $(this).find('title').text();
+ var release = $(this).find('release').text();
+ var version = $(this).find('version').text();
+ var html = $(this).find('html').text();
+ var pdf = $(this).find('pdf').text();
+ var singlehtml = $(this).find('singlehtml').text();
+ var empty = '<td></a></td>\n';
+ table += '<tr>\n';
+ if (html)
+ table += '<td><a href="' + html + '">' + title + '</a></td>\n';
+ else
+ table += empty;
+ if (pdf)
+ table += '<td><a href="' + '/' + pdf + '">' +
+ '<img src="' + pdfIcon + '" width="20" height="20"></a></td>\n';
+ else
+ table += empty;
+ if (singlehtml)
+ table += '<td><a href="' + '/' + singlehtml + '">' +
+ '<img src="' + htmlIcon + '" width="20" height="20"></a></td>\n';
+ else
+ table += empty;
+ table += '</tr>\n';
+ });
+ table += catalogueFooter();
+ el_cat_title.html('<h3>' + $(title).text() + '</h3>');
+ el_cat.html(table);
+ }, 'xml');
+}