[PATCH 03/11] js: Separate the virt-tools blog planet loader code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 docs/index.rst                    |  5 +--
 docs/js/main.js                   | 62 -----------------------------
 docs/js/meson.build               |  1 +
 docs/js/virt-tools-blog-planet.js | 65 +++++++++++++++++++++++++++++++
 4 files changed, 67 insertions(+), 66 deletions(-)
 create mode 100644 docs/js/virt-tools-blog-planet.js

diff --git a/docs/index.rst b/docs/index.rst
index b1666ee22e..79afae65da 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -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>

diff --git a/docs/js/main.js b/docs/js/main.js
index 87b817b287..bb94c5ac52 100644
--- a/docs/js/main.js
+++ b/docs/js/main.js
@@ -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();
-}
diff --git a/docs/js/meson.build b/docs/js/meson.build
index 9f77b0d85c..e83d1c92b0 100644
--- a/docs/js/meson.build
+++ b/docs/js/meson.build
@@ -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
index 0000000000..7f4e2bf3b9
--- /dev/null
+++ b/docs/js/virt-tools-blog-planet.js
@@ -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() });
-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux