]> xenbits.xensource.com Git - libvirt.git/commitdiff
js: Separate the virt-tools blog planet loader code
authorPeter Krempa <pkrempa@redhat.com>
Wed, 7 Feb 2024 09:31:02 +0000 (10:31 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 8 Feb 2024 15:48:47 +0000 (16:48 +0100)
In order to promote simple assets sharing between main libvirt web and
the libvirt-wiki separate the virt tools blog feed loader from the main
code used for search.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
docs/index.rst
docs/js/main.js
docs/js/meson.build
docs/js/virt-tools-blog-planet.js [new file with mode: 0644]

index b1666ee22e6a3e88328e597deb9708db9ce45da4..79afae65daa3d2a37248a035e43482d0f69fda5f 100644 (file)
@@ -65,10 +65,7 @@ Blog Planet
 
 .. raw:: html
 
-   <script type="text/javascript">
-     <!--
-     window.addEventListener("load", function() { fetchRSS() });
-     // -->
+   <script type="text/javascript" src="js/virt-tools-blog-planet.js">
    </script>
    <div id="planet"> </div>
 
index 87b817b28754ef2c5ed2a3c0caf58d7c410ac665..bb94c5ac52467cceb63abe0d15737fec1120edb5 100644 (file)
@@ -89,65 +89,3 @@ 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 link = e.querySelector("link").attributes.href.textContent;
-
-            var a = document.createElement("a");
-            a.href = link;
-            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();
-}
index 9f77b0d85c2214599d1dfc79fde06dc9a0c0239f..e83d1c92b0c98493b850041ba277f909cb0b25dd 100644 (file)
@@ -1,5 +1,6 @@
 docs_js_files = [
   'main.js',
+  'virt-tools-blog-planet.js',
 ]
 
 install_data(docs_js_files, install_dir: docs_html_dir / 'js')
diff --git a/docs/js/virt-tools-blog-planet.js b/docs/js/virt-tools-blog-planet.js
new file mode 100644 (file)
index 0000000..7f4e2bf
--- /dev/null
@@ -0,0 +1,65 @@
+"use strict";
+
+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 link = e.querySelector("link").attributes.href.textContent;
+
+            var a = document.createElement("a");
+            a.href = link;
+            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();
+}
+
+window.addEventListener("load", function() { fetchRSS() });