/* Template Name: Grenviro Monitoring Author: Themesbrand Website: https://Themesbrand.com/ Contact: Themesbrand@gmail.com File: job candidate list init js */ var url = "build/json/"; var allcandidateList = ''; var prevButton = document.getElementById('page-prev'); var nextButton = document.getElementById('page-next'); // configuration variables var currentPage = 1; var itemsPerPage = 8; var getJSON = function (jsonurl, callback) { var xhr = new XMLHttpRequest(); xhr.open("GET", url + jsonurl, true); xhr.responseType = "json"; xhr.onload = function () { var status = xhr.status; if (status === 200) { callback(null, xhr.response); } else { callback(status, xhr.response); } }; xhr.send(); }; // get json getJSON("job-candidate-list.json", function (err, data) { if (err !== null) { console.log("Something went wrong: " + err); } else { allcandidateList = data; loadCandidateListData(allcandidateList, currentPage); paginationEvents(); } }); function loadCandidateListData(datas, page) { var pages = Math.ceil(datas.length / itemsPerPage) if (page < 1) page = 1 if (page > pages) page = pages document.querySelector("#candidate-list").innerHTML = ''; for (var i = (page - 1) * itemsPerPage; i < (page * itemsPerPage) && i < datas.length; i++) { // Array.from(datas).forEach(function (listData, index){ if (datas[i]) { var bookmark = datas[i].bookmark ? "active" : ""; var isUserProfile = datas[i].userImg ? '' : '
' + datas[i].nickname + '
'; document.querySelector("#candidate-list").innerHTML += '
\
\
\
\
\
'+ isUserProfile + '
\
\
\
'+ datas[i].candidateName + '
\

'+ datas[i].designation + '

\
\
\
'+ datas[i].location + '
\
'+ isStatus(datas[i].type) + '
\
\
\
\ '+ datas[i].rating[0] + '\
\
'+ datas[i].rating[1] + '
\
\
\ View Details\ \ \ \ \
\
\
\
\
' } // }) } selectedPage(); currentPage == 1 ? prevButton.parentNode.classList.add('disabled') : prevButton.parentNode.classList.remove('disabled'); currentPage == pages ? nextButton.parentNode.classList.add('disabled') : nextButton.parentNode.classList.remove('disabled'); } function isStatus(val) { switch (val) { case "Part Time": return ('' + val + ""); case "Full Time": return ('' + val + ""); case "Freelancer": return ('' + val + ""); } } function selectedPage() { var pagenumLink = document.getElementById('page-num').getElementsByClassName('clickPageNumber'); for (var i = 0; i < pagenumLink.length; i++) { if (i == currentPage - 1) { pagenumLink[i].parentNode.classList.add("active"); } else { pagenumLink[i].parentNode.classList.remove("active"); } } }; // paginationEvents function paginationEvents() { var numPages = function numPages() { return Math.ceil(allcandidateList.length / itemsPerPage); }; function clickPage() { document.addEventListener('click', function (e) { if (e.target.nodeName == "A" && e.target.classList.contains("clickPageNumber")) { currentPage = e.target.textContent; loadCandidateListData(allcandidateList, currentPage); } }); }; function pageNumbers() { var pageNumber = document.getElementById('page-num'); pageNumber.innerHTML = ""; // for each page for (var i = 1; i < numPages() + 1; i++) { pageNumber.innerHTML += "
" + i + "
"; } } prevButton.addEventListener('click', function () { if (currentPage > 1) { currentPage--; loadCandidateListData(allcandidateList, currentPage); } }); nextButton.addEventListener('click', function () { if (currentPage < numPages()) { currentPage++; loadCandidateListData(allcandidateList, currentPage); } }); pageNumbers(); clickPage(); selectedPage(); } // Search list var searchElementList = document.getElementById("searchJob"); searchElementList.addEventListener("keyup", function () { var inputVal = searchElementList.value.toLowerCase(); function filterItems(arr, query) { return arr.filter(function (el) { return el.designation.toLowerCase().indexOf(query.toLowerCase()) !== -1 || el.candidateName.toLowerCase().indexOf(query.toLowerCase()) !== -1 }) } var filterData = filterItems(allcandidateList, inputVal); if (filterData.length == 0) { document.getElementById("pagination-element").style.display = "none"; } else { document.getElementById("pagination-element").style.display = "flex"; } var pageNumber = document.getElementById('page-num'); pageNumber.innerHTML = ""; var dataPageNum = Math.ceil(filterData.length / itemsPerPage) // for each page for (var i = 1; i < dataPageNum + 1; i++) { pageNumber.innerHTML += "
" + i + "
"; } loadCandidateListData(filterData, currentPage); });