87 lines
3 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
});
|