63 lines
2.7 KiB
JavaScript
63 lines
2.7 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@v10/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)
|
|
});
|
|
}
|
|
});
|