| document.addEventListener('DOMContentLoaded', () => { |
| const resumeInput = document.getElementById('resume-input'); |
| const resumeList = document.getElementById('resume-list'); |
| const jdInput = document.getElementById('jd-input'); |
| const jdList = document.getElementById('jd-list'); |
| function updateFileList(input, list) { |
| list.innerHTML = ''; |
| Array.from(input.files).forEach((file, index) => { |
| const listItem = document.createElement('li'); |
| const fileName = document.createElement('span'); |
| fileName.textContent = file.name; |
| const removeButton = document.createElement('button'); |
| removeButton.textContent = '×'; |
| removeButton.addEventListener('click', () => { |
| const dt = new DataTransfer(); |
| const files = Array.from(input.files).filter((_, i) => i !== index); |
| files.forEach(file => dt.items.add(file)); |
| input.files = dt.files; |
| updateFileList(input, list); |
| }); |
| listItem.appendChild(fileName); |
| listItem.appendChild(removeButton); |
| list.appendChild(listItem); |
| }); |
| } |
|
|
| resumeInput.addEventListener('change', () => updateFileList(resumeInput, resumeList)); |
| jdInput.addEventListener('change', () => updateFileList(jdInput, jdList)); |
|
|
| document.getElementById('resume-form').addEventListener('submit', function(event) { |
| event.preventDefault(); |
| const formData = new FormData(this); |
| fetch('/upload_resume', { |
| method: 'POST', |
| body: formData |
| }) |
| .then(response => response.json()) |
| .then(data => { |
| var modal = document.getElementById("resume-modal"); |
| var modalMessage = document.getElementById("resume-modalMessage"); |
| modalMessage.textContent = data.message; |
| modal.style.display = "block"; |
| modal.querySelector(".close").onclick = function() { |
| modal.style.display = "none"; |
| }; |
| window.onclick = function(event) { |
| if (event.target == modal) { |
| modal.style.display = "none"; |
| } |
| }; |
| }) |
| .catch(error => { |
| console.error('Error:', error); |
| }); |
| }); |
| document.getElementById('jd-form').addEventListener('submit', function(event) { |
| event.preventDefault(); |
| const formData = new FormData(this); |
| fetch('/upload_jd', { |
| method: 'POST', |
| body: formData |
| }) |
| .then(response => response.json()) |
| .then(data => { |
| var modal = document.getElementById("jd-modal"); |
| var modalMessage = document.getElementById("jd-modalMessage"); |
| modalMessage.textContent = data.message; |
| modal.style.display = "block"; |
| modal.querySelector(".close").onclick = function() { |
| modal.style.display = "none"; |
| }; |
| window.onclick = function(event) { |
| if (event.target == modal) { |
| modal.style.display = "none"; |
| } |
| }; |
| }) |
| .catch(error => { |
| console.error('Error:', error); |
| }); |
| }); |
| document.getElementById('process-button').addEventListener('click', function() { |
| const output = document.getElementById('output'); |
| output.textContent = ''; |
| const startTime = Date.now(); |
| let waitingTime = 0; |
| output.textContent = `Waiting time: ${waitingTime} seconds`; |
| const intervalId = setInterval(() => { |
| waitingTime = ((Date.now() - startTime) / 1000).toFixed(0); |
| output.textContent = `Waiting time: ${waitingTime} seconds`; |
| }, 1000); |
| fetch('/check_files',{ |
| method: 'POST' |
| }) |
| .then(response => response.json()) |
| .then(data => { |
| if (data.message === "Files are uploaded. Processing will start now.") { |
| var modal = document.getElementById("process-modal"); |
| var modalMessage = document.getElementById("process-modalMessage"); |
| modalMessage.textContent = "Processing, please wait..."; |
| modal.style.display = "block"; |
| modal.querySelector(".close").onclick = function() { |
| modal.style.display = "none"; |
| }; |
| window.onclick = function(event) { |
| if (event.target == modal) { |
| modal.style.display = "none"; |
| } |
| }; |
| fetch('/process', { |
| method: 'POST' |
| }) |
| .then(response => response.text()) |
| .then(text => { |
| clearInterval(intervalId); |
| output.textContent = text; |
| const finalWaitingTime = ((Date.now() - startTime) / 1000).toFixed(2); |
| output.textContent += `\n\nTotal waiting time: ${finalWaitingTime} seconds`; |
|
|
| }) |
| .catch(error => { |
| console.error('Error:', error); |
| modalMessage.textContent = "An error occurred during processing. Please try again."; |
| modal.querySelector(".close").onclick = function() { |
| modal.style.display = "none"; |
| }; |
| window.onclick = function(event) { |
| if (event.target == modal) { |
| modal.style.display = "none"; |
| } |
| }; |
| }); |
| } else{ |
| var modal = document.getElementById("process-modal"); |
| var modalMessage = document.getElementById("process-modalMessage"); |
| modalMessage.textContent = data.message; |
| modal.style.display = "block"; |
| modal.querySelector(".close").onclick = function() { |
| modal.style.display = "none"; |
| }; |
| window.onclick = function(event) { |
| if (event.target == modal) { |
| modal.style.display = "none"; |
| } |
| }; |
| } |
| }) |
| .catch(error=>{ |
| console.error('Error:', error); |
| alert("An error occurred while checking files."); |
| }); |
| }); |
| }); |