From 2a8a424ca7fa9e09f485f47bfc49372f0d8f1e33 Mon Sep 17 00:00:00 2001 From: Dirk Heilig Date: Thu, 18 Jan 2024 14:26:34 +0100 Subject: [PATCH] reformte js --- themes/hugo-theme-flat/static/js/calendar.js | 111 ++++++++++-------- .../hugo-theme-flat/static/js/door-status.js | 54 ++++++--- .../static/js/href_handling.js | 35 +++--- 3 files changed, 112 insertions(+), 88 deletions(-) diff --git a/themes/hugo-theme-flat/static/js/calendar.js b/themes/hugo-theme-flat/static/js/calendar.js index 7f4bfff..2504907 100644 --- a/themes/hugo-theme-flat/static/js/calendar.js +++ b/themes/hugo-theme-flat/static/js/calendar.js @@ -1,53 +1,62 @@ -document.addEventListener("DOMContentLoaded", function() { - - let url="https://ical2json.c3re.de/api/?url=https%3A%2F%2Fcloud.c3re.de%2Fremote.php%2Fdav%2Fpublic-calendars%2FRLKKkdjNYgXH8yEz%3Fexport&start=today&end=next+month&maxitems=10" -let xmlHttp = new XMLHttpRequest(); -let zeropad=function(i){ - let o="" - if(i<=9) o+="0" - o+=i - return o -} -xmlHttp.onreadystatechange = function() { - if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ - let cal=JSON.parse(xmlHttp.responseText) - let $ = jQuery - let box=$('#calendar') - for(let item of cal){ - let li=$("
  • ") - //li.text(item.summary) - let startDate=new Date(item.start * 1000) - let date=$("") - date.text(zeropad(startDate.getDate())+'.'+zeropad(1+startDate.getMonth())+'.'+startDate.getFullYear()+' - '+zeropad(startDate.getHours())+':'+zeropad(startDate.getMinutes())) - date.appendTo(li) - let summary=$("") - summary.text(item.summary) - if(item.url){ - let a = $('') - a.attr('href',item.url) - a.attr('title',item.description) - a.append(summary) - a.appendTo(li) - }else{ - summary.appendTo(li) - } - if(item.location){ - let loc=$("📍") - - loc.attr('data-loc',item.location) - loc.attr('title',"Click to copy: "+item.location) - loc.appendTo(li) - } - - li.attr('title',item.description) - li.appendTo(box) +document.addEventListener("DOMContentLoaded", function () { + let url = + "https://ical2json.c3re.de/api/?url=https%3A%2F%2Fcloud.c3re.de%2Fremote.php%2Fdav%2Fpublic-calendars%2FRLKKkdjNYgXH8yEz%3Fexport&start=today&end=next+month&maxitems=10"; + let xmlHttp = new XMLHttpRequest(); + let zeropad = function (i) { + let o = ""; + if (i <= 9) o += "0"; + o += i; + return o; + }; + xmlHttp.onreadystatechange = function () { + if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { + let cal = JSON.parse(xmlHttp.responseText); + let $ = jQuery; + let box = $("#calendar"); + for (let item of cal) { + let li = $("
  • "); + //li.text(item.summary) + let startDate = new Date(item.start * 1000); + let date = $(""); + date.text( + zeropad(startDate.getDate()) + + "." + + zeropad(1 + startDate.getMonth()) + + "." + + startDate.getFullYear() + + " - " + + zeropad(startDate.getHours()) + + ":" + + zeropad(startDate.getMinutes()) + ); + date.appendTo(li); + let summary = $(""); + summary.text(item.summary); + if (item.url) { + let a = $(""); + a.attr("href", item.url); + a.attr("title", item.description); + a.append(summary); + a.appendTo(li); + } else { + summary.appendTo(li); } - $(".location",box).click(function(){ - navigator.clipboard.writeText($(this).attr('data-loc')) - }) - } -} -xmlHttp.open("GET", url, true); // true for asynchronous -xmlHttp.send(); + if (item.location) { + let loc = $("📍"); -}); \ No newline at end of file + loc.attr("data-loc", item.location); + loc.attr("title", "Click to copy: " + item.location); + loc.appendTo(li); + } + + li.attr("title", item.description); + li.appendTo(box); + } + $(".location", box).click(function () { + navigator.clipboard.writeText($(this).attr("data-loc")); + }); + } + }; + xmlHttp.open("GET", url, true); // true for asynchronous + xmlHttp.send(); +}); diff --git a/themes/hugo-theme-flat/static/js/door-status.js b/themes/hugo-theme-flat/static/js/door-status.js index a814d14..37ab6d1 100644 --- a/themes/hugo-theme-flat/static/js/door-status.js +++ b/themes/hugo-theme-flat/static/js/door-status.js @@ -1,21 +1,37 @@ +document.addEventListener("DOMContentLoaded", function () { + const update = function () { + fetch("https://spaceapi.c3re.de/") + .then(function (response) { + return response.json(); + }) + .then(function (data) { + document + .getElementById("ds-img") + .setAttribute( + "src", + data.state.open ? data.state.icon.open : data.state.icon.closed + ); + document.getElementById("ds-status").innerHTML = data.state.open + ? "Geöffnet" + : "Geschlossen"; -document.addEventListener("DOMContentLoaded", function() { - const update=function(){ - fetch("https://spaceapi.c3re.de/").then(function(response) { - return( response.json()); - }).then(function(data) { - document.getElementById("ds-img").setAttribute("src",data.state.open?data.state.icon.open:data.state.icon.closed); - document.getElementById("ds-status").innerHTML=data.state.open?"Geöffnet":"Geschlossen"; - - document.getElementById("ds-temp").innerHTML=""+data.sensors.temperature[0].value+data.sensors.temperature[0].unit; - const lastchange=new Date(data.state.lastchange*1000) - document.getElementById('ds-date').innerHTML=lastchange.getDate().toString().padStart(2, "0") + "." - + (lastchange.getMonth()+1).toString().padStart(2, "0") + "." - + lastchange.getFullYear() + " " - + lastchange.getHours().toString().padStart(2, "0") + ":" - + lastchange.getMinutes().toString().padStart(2, "0") - }) - } - update(); - setInterval(update,10000); + document.getElementById("ds-temp").innerHTML = + "" + + data.sensors.temperature[0].value + + data.sensors.temperature[0].unit; + const lastchange = new Date(data.state.lastchange * 1000); + document.getElementById("ds-date").innerHTML = + lastchange.getDate().toString().padStart(2, "0") + + "." + + (lastchange.getMonth() + 1).toString().padStart(2, "0") + + "." + + lastchange.getFullYear() + + " " + + lastchange.getHours().toString().padStart(2, "0") + + ":" + + lastchange.getMinutes().toString().padStart(2, "0"); + }); + }; + update(); + setInterval(update, 10000); }); diff --git a/themes/hugo-theme-flat/static/js/href_handling.js b/themes/hugo-theme-flat/static/js/href_handling.js index 1704170..be8bc00 100644 --- a/themes/hugo-theme-flat/static/js/href_handling.js +++ b/themes/hugo-theme-flat/static/js/href_handling.js @@ -1,20 +1,19 @@ - -document.addEventListener("DOMContentLoaded", function() { -document.querySelectorAll('a').forEach(function(element) { +document.addEventListener("DOMContentLoaded", function () { + document.querySelectorAll("a").forEach(function (element) { const myhost = window.location.hostname; - const linkhost=new URL(element.href).hostname; - if(myhost === linkhost) { - let prefetchUrl=new URL(element.href).toString() - // lest make a prefetch tag for this url - let link = document.createElement('link'); - link.setAttribute('rel', 'prefetch'); - link.setAttribute('href', prefetchUrl); - link.setAttribute('as', 'document'); - document.head.appendChild(link); - element.classList.add("internal"); - }else { - element.setAttribute("target", "_blank"); - element.classList.add("external"); + const linkhost = new URL(element.href).hostname; + if (myhost === linkhost) { + let prefetchUrl = new URL(element.href).toString(); + // lest make a prefetch tag for this url + let link = document.createElement("link"); + link.setAttribute("rel", "prefetch"); + link.setAttribute("href", prefetchUrl); + link.setAttribute("as", "document"); + document.head.appendChild(link); + element.classList.add("internal"); + } else { + element.setAttribute("target", "_blank"); + element.classList.add("external"); } -}) -}); \ No newline at end of file + }); +});