It will not be executed when the page is loaded locally. It needs
planet.virt-tools.org to supply the right headers (which it does now).
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
docs/index.html.in | 15 ++---------
docs/js/main.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 13 deletions(-)
diff --git a/docs/index.html.in b/docs/index.html.in
index f593445d061d..1e16f299c8fd 100644
--- a/docs/index.html.in
+++ b/docs/index.html.in
@@ -2,21 +2,10 @@
<!DOCTYPE html>
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
- <script type="text/javascript"
src="js/jquery-3.1.1.min.js"> </script>
- <script type="text/javascript" src="js/moment.min.js">
</script>
- <script type="text/javascript" src="js/jquery.rss.min.js">
</script>
-
<script type="text/javascript">
<!--
- jQuery(function($) {
- $("#planet").rss("http://planet.virt-tools.org/atom.xml", {
- ssl: true,
- layoutTemplate: '<dl>{entries}</dl>',
- entryTemplate: '<dt><a
href="{url}">{title}</a></dt><dd>by {author} on
{date}</li>',
- dateFormat: 'DD MMM YYYY'
- })
- })
- // -->
+ window.addEventListener("load", function() { fetchRSS() });
+ // -->
</script>
</head>
<body class="index">
diff --git a/docs/js/main.js b/docs/js/main.js
index cb424dd72fb3..d1c20742a331 100644
--- a/docs/js/main.js
+++ b/docs/js/main.js
@@ -77,3 +77,65 @@ function advancedsearch(e) {
return false;
}
+
+function fetchRSS() {
+ if (document.location.protocol == "file:")
+ return;
+
+ var planet = document.getElementById("planet");
+ if (planet === null)
+ return;
+
+ var req = new XMLHttpRequest();
+ req.open("GET", "https://planet.virt-tools.org/atom.xml");
+ req.setRequestHeader("Accept", "application/atom+xml,
text/xml");
+ req.onerror = function(e) {
+ if (this.statusText != "")
+ console.error(this);
+ };
+ req.onload = function(e) {
+ if (this.readyState !== 4)
+ return;
+
+ if (this.status != 200) {
+ console.error(this.statusText)
+ return;
+ }
+
+ if (this.responseXML === null) {
+ console.error("Atom response is not an XML");
+ return;
+ }
+
+ var dl = document.createElement("dl");
+ var dateOpts = { day: "numeric", month: "short", year:
"numeric"};
+
+ var entries = this.responseXML.querySelectorAll("feed >
entry:not(:nth-of-type(1n+5))");
+
+ entries.forEach(function(e) {
+ var name = e.querySelector("author > name").textContent;
+ var title = e.querySelector("title").textContent;
+ var updated = e.querySelector("updated").textContent;
+ var uri = e.querySelector("author > uri").textContent;
+
+ var a = document.createElement("a");
+ a.href = uri;
+ a.innerText = title;
+
+ var dt = document.createElement("dt");
+ dt.appendChild(a);
+ dl.appendChild(dt);
+
+ var date = new Date(updated);
+ date = date.toLocaleDateString("default", dateOpts);
+
+ var dd = document.createElement("dd");
+ dd.innerText = ` by ${name} on ${date}`;
+
+ dl.appendChild(dd);
+ });
+
+ planet.appendChild(dl);
+ };
+ req.send();
+}
--
2.22.0