var employmentLocation = new Set(),
empListing = [],
employmentInfo = [],
employmentAPI = new XMLHttpRequest();
employmentAPI.open('GET', '/api/v1/corporation_employment/?format=json&api_key=' + window.api_key, true);
employmentAPI.send();
employmentAPI.onload = function() {
var employmentData = JSON.parse(this.response);
var employmentListing = employmentData.objects;
employmentListing.forEach(function(listing) {
employmentLocation.add(listing.location);
employmentInfo.push(listing);
});
var empPos = new XMLHttpRequest();
empPos.open('GET', '/api/v3/employment/list_positions/?format=json&api_key=' + window.api_key, true); empPos.send();
empPos.onload = function() {
var data = JSON.parse(this.response);
data.forEach(function(item) {
empListing.push(item);
});
createRegions();
addRegionEventListeners();
addCardObservers();
setCsrf();
postMessage();
}
};
function createRegions() {
var regionHTML = '
\n';
var employmentRegionContainer = {};
var employmentTemplates = {};
employmentLocation.forEach(function(region) {
regionHTML += '';
employmentRegionContainer[region] = '
\n';
});
employmentLocation.forEach(function(region) {
employmentInfo.forEach(function(info, i) {
if(info.location == region) {
employmentRegionContainer[region] = employmentRegionContainer[region] + '
\n'+
'
\n'+
'
\n' +
'
\n' +
'\n' +
'
\n' +
'
\n' +
'
\n' +
'
'+ info.description + '
\n'+
'
\n' +
'
\n' +
'\n'+
'
'+ info.requirements + '
\n'+
(info.application ? '
Download Application Download PDF
\n' : "")+
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n';
}
});
});
var careersContainer = document.getElementById('careers_container');
for( var i in employmentRegionContainer ) {
careersContainer.innerHTML += employmentRegionContainer[i];
}
regionHTML += '
';
var regionsContainer = document.getElementById('regions_container');
regionsContainer.innerHTML += regionHTML;
let jobContainers = Array.prototype.slice.call(document.getElementsByClassName("job-posting-container"));
let communityInputs = Array.prototype.slice.call(document.getElementsByName("community"))
let positionInputs = Array.prototype.slice.call(document.getElementsByName("position"))
jobContainers.forEach(function(container, i) {
communityInputs[i].value = container.getAttribute('data-community');
positionInputs[i].value = container.getAttribute('data-employment')
});
}
function empPos() {
var empPos = new XMLHttpRequest();
empPos.open('GET', '/api/v3/employment/list_positions/?format=json&api_key=' + window.api_key, true);
empPos.send();
empPos.onload = function() {
var data = JSON.parse(this.response);
data.forEach(function(item) {
empListing.push(item);
});
}
}
function postMessage() {
var careersContainer = document.getElementById('job_container');
var form = Array.from(document.getElementsByClassName("djenga_form"));
form.forEach(form => {
let thisForm = form.getElementsByTagName("form")[0];
var postData = new XMLHttpRequest();
thisForm.addEventListener("submit", function(e) {
e.preventDefault();
console.log(thisForm);
postData.open("POST", '/api/v2/employment_submission/');
postData.send(new FormData(thisForm));
careersContainer.innerHTML = "
Application has been submitted
";
});
})
}
function setCsrf() {
var employmentAPI = new XMLHttpRequest();
employmentAPI.open('GET','/api/v2/employment_submission/', true);
employmentAPI.send();
employmentAPI.onload = function() {
var csrfInputs = Array.prototype.slice.call(document.getElementsByName('csrfmiddlewaretoken'));
var response = this.responseText;
csrfInputs.forEach(function(input) {
input.value = response.trim();
});
}
}
// Region Button clicks
function addRegionEventListeners() {
document.getElementsByClassName('career-item')[0].classList.add('active-listing');
var regionButtons = Array.prototype.slice.call(document.getElementsByClassName('region-button'));
regionButtons[0].classList.add('active-button');
regionButtons[0].click();
regionButtons.forEach(function(button) {
button.addEventListener("click", function() {
for(var i = 0; i < regionButtons.length; i++) {
regionButtons[i].classList.remove('active-button');
}
this.classList.add('active-button');
Array.prototype.slice.call(document.getElementsByClassName('career-item')).forEach(function(item) {
item.classList.remove('active-listing');
});
document.getElementsByClassName(this.innerHTML)[0].classList.add('active-listing');
});
});
};
// Card clicks & back button
function addCardObservers() {
var cardButton = Array.prototype.slice.call(document.getElementsByClassName("card-button"));
var backButton = Array.prototype.slice.call(document.getElementsByClassName("back-to-listing"))
var page = document.getElementById("careers_front_page");
var jobsSection = document.getElementById("job_positions");
var innerCards = document.getElementsByClassName("inner-card-section");
cardButton.forEach(function(button, i) {
button.addEventListener("click", function() {
innerCards[i].classList.remove("hide");
innerCards[i].classList.add("open-card");
page.classList.add("hide");
jobsSection.classList.add("set-height");
});
});
backButton.forEach(function(backBtn, i) {
backBtn.addEventListener("click", function() {
page.classList.remove("hide");
jobsSection.classList.remove("set-height");
innerCards[i].classList.add("hide");
});
});
};