lynks/resources/public/lynks.js
Yann Esposito (Yogsototh) ca13a0fa03
UI bugfixes
2022-08-16 16:32:10 +02:00

67 lines
1.4 KiB
JavaScript

function newent(e,txt) {
let s = document.createElement(e);
let t = document.createTextNode(txt);
s.appendChild(t);
return s;
}
function newspan(txt) {
return newent("span",txt);
}
function newlink(txt,lnk) {
let a = document.createElement("a");
a.href = lnk;
let t = document.createTextNode(txt);
a.appendChild(t);
return a;
}
function newli(n) {
let li = document.createElement("li");
li.appendChild(n);
return li;
}
function newul(lst) {
let ul = document.createElement("ul");
lst.forEach((e) => {
let li = newli(e);
ul.appendChild(li);
}
);
return ul;
}
function add(n,lst) {
lst.forEach((e) =>
n.appendChild(e));
return n;
}
function entryNode(entry) {
let created = newspan(entry.created);
let label = newspan(entry.label);
let short = newlink(entry.short,entry.short);
let url = newspan(entry.url);
let block = document.createElement("ul");
block.appendChild(newli(short));
block.appendChild(newli(url));
let div = document.createElement("div");
add(div,[created,newspan(" "),label,block])
return div;
}
function appendEntry (entry) {
let u = document.getElementById("lynks");
let li = document.createElement("li");
let a = entryNode(entry);
li.appendChild(a);
u.appendChild(li);
}
fetch('/y')
.then((response) => response.json())
.then((lst) =>
(lst.forEach (entry => appendEntry(entry))));