fetch bookmarks every time; de-duplicate code

This commit is contained in:
Tom 2020-10-05 15:15:41 +01:00 committed by GitHub
parent e81bd2d374
commit 1a65698c41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,50 +1,16 @@
var data_links = "links.json";
var bookmarks = JSON.parse(localStorage.getItem("links"));
function handleLinks(data) {
var mysource = document.getElementById("links-template").innerHTML;
var mytemplate = Handlebars.compile(mysource);
var myresult = mytemplate(data)
document.getElementById("links").innerHTML = myresult;
function fetchAndRender (name) {
fetch(name + '.json')
.then(response => response.json())
.then(data => {
const mysource = document.getElementById(name + '-template').innerHTML;
const mytemplate = Handlebars.compile(mysource);
const myresult = mytemplate(data);
document.getElementById(name).innerHTML = myresult;
});
}
document.addEventListener("DOMContentLoaded", function () {
if (!bookmarks) {
fetch(data_links)
.then(response => response.json())
.then(function (data) {
handleLinks(data);
localStorage.setItem("links", JSON.stringify(data));
});
} else {
handleLinks(bookmarks);
}
});
var data_apps = "apps.json";
document.addEventListener("DOMContentLoaded", function () {
fetch(data_apps)
.then( response => response.json())
.then(
function (data) {
var mysource = document.getElementById("apps-template").innerHTML;
var mytemplate = Handlebars.compile(mysource);
var myresult = mytemplate(data)
document.getElementById("apps").innerHTML = myresult;
});
});
var data_providers = "providers.json";
document.addEventListener("DOMContentLoaded", function () {
fetch(data_providers)
.then( response => response.json())
.then(
function (data) {
var mysource = document.getElementById("providers-template").innerHTML;
var mytemplate = Handlebars.compile(mysource);
var myresult = mytemplate(data)
document.getElementById("providers").innerHTML = myresult;
});
document.addEventListener('DOMContentLoaded', () => {
fetchAndRender('apps');
fetchAndRender('links');
fetchAndRender('providers');
});