{"version":3,"names":[],"mappings":"","sources":["internal-confidential-search.js"],"sourcesContent":["import * as capSvc from './services/internal-confidential-service.js';\r\nimport internalConfidentialRequest from './models/internal-Confidential/searchRequestModel.js'\r\nimport internalConfidentialDisplay from \"./models/internal-Confidential/searchDisplayModel.js\";\r\nimport {keyTabNavigation} from \"../utilities/navigation.js\";\r\nimport {footer} from \"./internal-confidential-searchFooter.js\";\r\n\r\nwindow.loadJobDetail = loadJobDetail;\r\nwindow.hideCaliNotice = hideCaliNotice;\r\nwindow.acceptGdpr = acceptGdpr;\r\n\r\nlet brandId;\r\nconsole.log('brand1: ' + sessionStorage.getItem('brandId'));\r\nbrandId = capSvc.getBrand();\r\nconsole.log('brand2: ' + sessionStorage.getItem('brandId'));\r\nlet direction = \"asc\"\r\n\r\nconst columns = [\r\n {path: \"title\", name: \"Title\", justification: \"text-left\"},\r\n {path: \"id\", name: \"ID\", justification: \"text-left\"},\r\n {path: \"city\", name: \"City\", justification: \"text-left\"},\r\n {path: \"stateProvince\", name: \"State\", justification: \"text-center\"},\r\n {path: \"datePosted\", name: \"Date Posted\", justification: \"text-center\"}\r\n];\r\n\r\nlet bodyRequest = internalConfidentialRequest\r\nlet displayData = internalConfidentialDisplay\r\n\r\nif (window.location.search === \"\") {\r\n //\r\n const searchDiv = document.getElementById(\"brandBody\");\r\n searchDiv.innerHTML =\r\n `\r\n ${sessionStorage.getItem('headerHtml')}\r\n`\r\n const tableSearchDisplayDiv = document.createElement(\"div\")\r\n tableSearchDisplayDiv.setAttribute(\"id\", \"searchTableDiv\")\r\n tableSearchDisplayDiv.setAttribute(\"class\", \"container clearfix pb-1\")\r\n\r\n const searchTable = document.createElement(\"div\")\r\n searchTable.setAttribute(\"id\", \"searchTable\")\r\n searchTable.setAttribute(\"class\", \"container\")\r\n tableSearchDisplayDiv.appendChild(searchTable)\r\n\r\n const s = document.createElement(\"script\")\r\n s.type = 'module'\r\n s.src = '../assets/js/internal-confidential-searchFilter.js'\r\n tableSearchDisplayDiv.appendChild(s)\r\n\r\n const jobs = capSvc.getInternalJobs(bodyRequest)\r\n const jobs2 = jobs.then(res => res.json())\r\n jobs2.then(json => {\r\n displayData = json\r\n if (displayData.searchResults !== null) {\r\n populateSearchTable(displayData)\r\n footer(displayData.totalResults, bodyRequest[\"resultsPerPage\"], 1)\r\n setSortHeader()\r\n keyTabNavigation()\r\n }\r\n })\r\n searchDiv.appendChild(tableSearchDisplayDiv)\r\n removePreloader();\r\n}\r\n\r\nfunction loadJobDetail(jobId, stateProvince) {\r\n if (stateProvince === 'CA') {\r\n capSvc.showCaliNotice(jobId + \".html\");\r\n } else {\r\n window.open(jobId + \".html\", \"_self\");\r\n }\r\n}\r\n\r\nfunction populateSearchTable(displayData, pageSize = null) {\r\n // console.log(displayData);\r\n\r\n searchTable.innerHTML = `\r\n
\r\n

${displayData['totalResults']} Positions Found

\r\n
\r\n
\r\n \t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\t\t\r\n ${columns.map(({path, name, justification}) => (\r\n ``\r\n )).join('')}\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n ${displayData['searchResults'].map((rowData) => (\r\n `\r\n ${columns.map(({path, justification}) => (\r\n formatData(path, rowData, justification)\r\n )).join('')}\r\n `\r\n )).join('')}\r\n\t\t\t\t\t \r\n\t\t\t\t
${name}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
PRIVACY NOTICE TO CALIFORNIA EMPLOYEES AND JOB APPLICANTS REGARDING THE COLLECTION OF PERSONAL INFORMATION
\r\n \r\n
\r\n
\r\n ${sessionStorage.getItem('ccpaContent')}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n`\r\n}\r\n\r\nfunction formatData(path, rowData, justification) {\r\n return (`\r\n ${rowData[path]}\r\n `)\r\n}\r\n\r\nexport function setSortHeader() {\r\n const table = document.getElementById('jobSearchTable');\r\n\r\n // Query the headers\r\n const headers = table.querySelectorAll('th');\r\n\r\n // Loop over the headers\r\n [].forEach.call(headers, function (header, index) {\r\n header.addEventListener('click', function () {\r\n // This function will sort the column\r\n sortColumn(index, header.id);\r\n });\r\n });\r\n\r\n const tableBody = table.querySelector('tbody');\r\n const rows = tableBody.querySelectorAll('tr');\r\n\r\n // Track sort directions\r\n let directions = Array.from(headers).map(function (header) {\r\n return '';\r\n });\r\n\r\n console.log(headers);\r\n console.log(directions);\r\n\r\n const sortColumn = function (index, id) {\r\n if ($('#' + id)[0].classList.contains('sorting_asc')) {\r\n direction = \"asc\"\r\n } else {\r\n direction = \"desc\"\r\n }\r\n\r\n // \r\n\r\n console.log($('#' + id)[0].querySelector('.fa').classList);\r\n\r\n // // Get the current direction\r\n // const direction = directions[index] || 'asc';\r\n\r\n switch (id){\r\n case 'ID':\r\n bodyRequest['sortColumn'] = \"PeopleSoftId\"\r\n break\r\n case 'title':\r\n bodyRequest['sortColumn'] = \"Title\"\r\n break\r\n case 'city':\r\n bodyRequest['sortColumn'] = \"City\"\r\n break\r\n case 'state':\r\n bodyRequest['sortColumn'] = \"StateProvince\"\r\n break\r\n default:\r\n bodyRequest['sortColumn'] = \"DatePosted\"\r\n break\r\n }\r\n bodyRequest['sortDirection'] = direction\r\n\r\n capSvc.getJobs(bodyRequest)\r\n .then(res => res.json())\r\n .then(json => {\r\n displayData = json\r\n bindSearchTable(displayData)\r\n\r\n if (direction === 'asc') {\r\n $('#' + id)[0].classList.remove('sorting_asc');\r\n $('#' + id)[0].classList.add('sorting_desc');\r\n $('#' + id)[0].querySelector('.fa').classList.remove('fa-chevron-up');\r\n $('#' + id)[0].querySelector('.fa').classList.add('fa-chevron-down');\r\n\r\n } else {\r\n $('#' + id)[0].classList.remove('sorting_desc');\r\n $('#' + id)[0].classList.add('sorting_asc');\r\n $('#' + id)[0].querySelector('.fa').classList.remove('fa-chevron-down');\r\n $('#' + id)[0].querySelector('.fa').classList.add('fa-chevron-up');\r\n }\r\n\r\n // \r\n\r\n console.log(headers[index].querySelector('.fa').classList);\r\n })\r\n\r\n // Reverse the direction\r\n directions[index] = direction === 'asc' ? 'desc' : 'asc';\r\n };\r\n}\r\n\r\nexport function filterSearch(event) {\r\n event.preventDefault()\r\n const state = document.getElementById(\"inputState\").value === \"\" ? null : document.getElementById(\"inputState\").value\r\n let distance = null\r\n let keyword = null\r\n let peopleSoftId = null\r\n let city = null\r\n let ZipCode = null\r\n if (!document.getElementById(\"radiusMiles\").disabled) {\r\n distance = document.getElementById(\"radiusMiles\").value\r\n }\r\n if (document.getElementById(\"inputTitle\").value !== \"\") {\r\n keyword = document.getElementById(\"inputTitle\").value\r\n }\r\n if (document.getElementById(\"inputId\").value !== \"\") {\r\n peopleSoftId = document.getElementById(\"inputId\").value\r\n }\r\n\r\n if (document.getElementById(\"inputCity\").value) {\r\n city = document.getElementById(\"inputCity\").value\r\n }\r\n\r\n if (document.getElementById(\"inputZipRadius\").value !== \"\") {\r\n ZipCode = document.getElementById(\"inputZipRadius\").value\r\n }\r\n\r\n console.log('keyword: ' + keyword)\r\n\r\n bodyRequest = {\r\n brandCode: 'internal-confidential',\r\n keywords: keyword,\r\n peopleSoftId: peopleSoftId,\r\n city: city,\r\n state: state,\r\n positionType: null,\r\n postalCode: ZipCode,\r\n distanceInMiles: distance,\r\n page: 0,\r\n resultsPerPage: 10,\r\n sortColumn: \"DatePosted\",\r\n sortDirection: \"desc\"\r\n }\r\nconsole.log(bodyRequest)\r\n capSvc.getJobs(bodyRequest)\r\n .then(res => res.json())\r\n .then(json => {\r\n displayData = json\r\n bindSearchTable(displayData)\r\n })\r\n}\r\n\r\nexport function setPageNumber(pageNumber) {\r\n bodyRequest[\"page\"] = pageNumber - 1\r\n capSvc.getInternalJobs(bodyRequest)\r\n .then(res => res.json())\r\n .then(json => {\r\n displayData = json\r\n bindSearchTable(displayData)\r\n })\r\n}\r\n\r\nexport function setPageDisplaySize(event) {\r\n bodyRequest[\"resultsPerPage\"] = event.currentTarget.value\r\n document.getElementsByName(\"pageDisplaySize\").value = bodyRequest[\"resultsPerPage\"]\r\n capSvc.getInternalJobs(bodyRequest)\r\n .then(res => res.json())\r\n .then(json => {\r\n displayData = json\r\n bindSearchTable(displayData)\r\n })\r\n}\r\n\r\nfunction bindSearchTable(displayData) {\r\n if (displayData.searchResults !== null) {\r\n if(displayData.searchResults.length > 0){\r\n populateSearchTable(displayData)\r\n document.getElementById(\"tableFooter\").remove()\r\n footer(displayData.totalResults, bodyRequest[\"resultsPerPage\"], bodyRequest[\"page\"] + 1)\r\n setSortHeader()\r\n keyTabNavigation()\r\n }\r\n }else{\r\n $('#noJobsFound')[0].removeAttribute('hidden')\r\n $('#jobCountDisplay').addClass('hidden')\r\n $('#jobSearchTable').addClass(\"hidden\")\r\n $('#searchFilter').addClass('hidden')\r\n document.getElementById(\"tableFooter\").remove()\r\n }\r\n}\r\n\r\nfunction hideCaliNotice() {\r\n $(\"#caliNoticeModal\").modal(\"hide\");\r\n}\r\n\r\nfunction acceptGdpr() {\r\n console.log('accepted')\r\n sessionStorage.setItem('cookiesAccepted','true')\r\n $('#gdprNotice').hide();\r\n}\r\n"],"file":"internal-confidential-search.js"}