noveria.org/static/js/jobs.js

87 lines
3 KiB
JavaScript

let jobsContainer = document.getElementById("jobsContainer");
fetch("/json/jobs.json")
.then((response) => response.json())
.then((json) => {
if (json.length <= 0) {
const jobContainer = document.createElement("div");
jobContainer.classList.add("flex-auto");
jobContainer.appendChild(document.createElement("h2")).innerHTML =
"There are currently no open jobs to apply for";
jobContainer.appendChild(document.createElement("p")).innerHTML =
"Please try again to a different time";
jobsContainer.appendChild(jobContainer);
} else {
json.forEach((job) => {
const jobContainer = document.createElement("div");
jobContainer.classList.add("flex-auto");
const jobTitle = document.createElement("h2");
jobTitle.innerHTML = job.title;
jobContainer.appendChild(jobTitle);
if (job.sub.length > 0) {
const jobIcons = document.createElement("div");
jobIcons.classList.add("flex", "flex-row", "text-2xl");
job.sub.forEach((icon) => {
let iconObject;
switch (icon.source) {
case "mdi":
iconObject = document.createElement("span");
iconObject.classList.add("iconify");
iconObject.setAttribute("data-icon", "mdi-" + icon.icon + "");
break;
case "simpleicons":
iconObject = document.createElement("span");
iconObject.classList.add("icon");
const iconImg = document.createElement("img");
iconImg.height = 20;
iconImg.width = 20;
iconImg.src =
"https://cdn.jsdelivr.net/npm/simple-icons@v14/icons/" +
icon.icon +
".svg";
iconObject.appendChild(iconImg);
break;
}
jobIcons.appendChild(iconObject);
});
jobContainer.appendChild(jobIcons);
}
const jobDescription = document.createElement("p");
jobDescription.innerHTML = job.description;
jobContainer.appendChild(jobDescription);
const applyButton = document.createElement("button");
applyButton.type = "button";
applyButton.classList.add(
"text-white",
"bg-blue-700",
"hover:bg-blue-800",
"focus:outline-none",
"focus:ring-4",
"focus:ring-blue-300",
"font-medium",
"rounded-full",
"text-sm",
"px-5",
"py-2.5",
"text-center",
"me-2",
"mb-2",
"dark:bg-blue-600",
"dark:hover:bg-blue-700",
"dark:focus:ring-blue-800",
"max-w-2xs",
);
applyButton.addEventListener("click", () => {
openApplyForm(job.title);
});
applyButton.innerHTML = "Apply";
jobsContainer.appendChild(jobContainer);
jobsContainer.appendChild(applyButton);
});
}
});