2022-12-25 17:17:35 -05:00

77 lines
1.6 KiB
JavaScript

function main()
{
var projects = getProjects();
if (projects == undefined)
{
console.error("No projects found.");
return;
}
var template = getTemplate();
if (template == undefined)
{
console.error("Template not found.");
return;
}
var divs = populateTemplates(projects, template);
insertProjects(divs);
removeWaitMessage();
}
function getProjects()
{
const projectsPath = "data/news.json";
request.open("GET", projectsPath, false);
request.send(null);
var str = request.responseText;
return JSON.parse(str);
}
function getTemplate()
{
const templatePath = "templates/news.html";
request.open("GET", templatePath, false);
request.send(null);
return request.responseText;
}
function populateTemplates(json, template)
{
var total = "";
for (var i = 0; i < json.projects.length; i++)
{
var project = json.projects[i];
var str = template;
str = globalThis.extras.replaceVarsBlock(str, "%id%", project.id);
str = globalThis.extras.replaceVarsBlock(str, "%name%", project.name);
str = globalThis.extras.replaceVarsBlock(str, "%date%", project.date);
total += str;
}
return total;
}
function insertProjects(projects)
{
var html = document.documentElement.innerHTML;
while (html.includes("<!--news-->")) html = html.replace("<!--news-->", projects);
document.documentElement.innerHTML = html;
}
function removeWaitMessage()
{
var html = document.getElementById("wait-message");
html.innerHTML = "";
html.style.margin = "0";
}
main();