[libvirt] [PATCH 1/3] docs: Use our own implementation for fetching the RSS data
Daniel P. Berrangé
berrange at redhat.com
Wed Jun 19 16:56:17 UTC 2019
On Wed, Jun 19, 2019 at 05:22:57PM +0200, Martin Kletzander wrote:
> This is just a small script I wrote. It works the same way as all the libraries
> together which we are bundling, but with just JS. The only difference is that
> the day of the date is formatted as 2-digit, but this should be a bug in
> Firefox (at least locally for me) as the documentation states that type
> 'numeric' should actually not have leading zeros.
>
> It will not be executed when the page is loaded locally.
>
> It also uses the same proxy that query-rss uses. We can get rid of that, but
> we'd either need to have our own proxy, send a sss header to allow fetching the
> atom.xml or providing JSONP access to the RSS feed on virt-planet.
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> docs/index.html.in | 13 -------------
> docs/js/main.js | 47 ++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 47 insertions(+), 13 deletions(-)
>
> diff --git a/docs/index.html.in b/docs/index.html.in
> index f593445d061d..fa75289cad0f 100644
> --- a/docs/index.html.in
> +++ b/docs/index.html.in
> @@ -5,19 +5,6 @@
> <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'
> - })
> - })
> - // -->
> - </script>
This code only runs on the index.html page which makes sense as that's
where the RSS feed is displayed....
> </head>
> <body class="index">
> <h1>The virtualization API</h1>
> diff --git a/docs/js/main.js b/docs/js/main.js
> index e57b9f47ac11..07f79c7ff903 100644
> --- a/docs/js/main.js
> +++ b/docs/js/main.js
> @@ -29,6 +29,53 @@ function pageload() {
>
> simpleSearch = document.getElementById("simplesearch")
> simplesearch.addEventListener("submit", advancedsearch)
> +
> + docLoc = document.location;
> + if (docLoc.protocol != "file:" ||
> + docLoc.origin != "null" ||
> + docLoc.host !== "" ||
> + docLoc.hostname !== "") {
> + fetchRSS()
> + }
> +}
...but unless I'm mis-reading something, this code runs on every single
page on the site. I would have expected the fetcRSS() call to have
been made from the <script> block in the index.html page.
> +
> +function fetchRSS() {
> + cb = "jsonpRSSFeedCallback"
> + window["jsonpRSSFeedCallback"] = function (data) {
> + if (data.responseStatus != 200)
> + return
> + entries = data.responseData.feed.entries
> + nEntries = Math.min(entries.length, 4)
> +
> + dl = document.createElement('dl')
> +
> + dateOpts = { day: 'numeric', month: 'short', year: 'numeric'}
> +
> + for (i = 0; i < nEntries; i++) {
> + entry = entries[i]
> + a = document.createElement('a')
> + a.href = entry.link
> + a.innerText = entry.title
> +
> + dt = document.createElement('dt')
> + dt.appendChild(a)
> + dl.appendChild(dt)
> +
> + date = new Date(entry.publishedDate)
> + datestr = date.toLocaleDateString('default', dateOpts)
> +
> + dd = document.createElement('dd')
> + dd.innerText = ` by ${entry.author} on ${datestr}`
> +
> + dl.appendChild(dd)
> + }
> +
> + planet.appendChild(dl);
> + };
> + script = document.createElement("script")
> + script.src = "https://feedrapp.herokuapp.com/"
> + script.src += `?q=http%3A%2F%2Fplanet.virt-tools.org%2Fatom.xml&callback=${cb}`
> + document.body.appendChild(script);
> }
>
> function advancedsearch(e) {
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list