split js to allow resume extract preview

This commit is contained in:
Kyle Belanger 2025-02-17 15:00:17 -05:00
parent 2a91527ff0
commit ab20fdf0aa
2 changed files with 57 additions and 37 deletions

View file

@ -1,5 +1,9 @@
@import "tailwindcss"; @import "tailwindcss";
#outputSection { #resumePreviewSection {
display: none;
}
#coverLetterSection {
display: none; display: none;
} }

View file

@ -1,69 +1,85 @@
document.getElementById('uploadForm').addEventListener('submit', async function (event) { document.getElementById('uploadForm').addEventListener('submit', async function (event) {
event.preventDefault(); event.preventDefault();
const outputSection = document.getElementById('outputSection'); const resumePreviewSection = document.getElementById('resumePreviewSection');
const coverLetterOutput = document.getElementById('coverLetterOutput'); const generateBtn = document.getElementById('generateCoverLetterBtn');
const generateBtn = document.getElementById('generateBtn');
const downloadBtn = document.getElementById('downloadBtn');
generateBtn.disabled = true; generateBtn.disabled = true;
generateBtn.textContent = "Generating..."; generateBtn.textContent = "Reading Resume...";
coverLetterOutput.value = ""; //This clear any previous generated output resumePreviewSection.value = ""; //This clear any previous generated output
resumePreviewSection.style.display = "flex";
// Show the Output Section while the program runs
outputSection.style.display = "block";
coverLetterOutput.value = "Generating cover letter...";
const fileInput = document.getElementById('resume'); const fileInput = document.getElementById('resume');
const jobDescriptionInput = document.getElementById('jobDescription');
if (!fileInput || !jobDescriptionInput) {
console.error("Form elements not found.");
return;
}
const file = fileInput.files[0]; const file = fileInput.files[0];
const jobDescription = jobDescriptionInput.value;
if (!file) { if (!file) {
alert("Please upload a resume."); alert("Please upload a resume.");
return; return;
} }
const formData = new FormData();
formData.append("resume", file);
try {
const response = await fetch('/generate/extract-resume', {
method: "POST",
body: formData,
});
const data = await response.json();
if (data.error) {
alert("Error: " + data.error)
} else {
resumePreviewSection.value = data.extractedText;
generateBtn.disabled = false;
generateBtn.textContent = "Generate Cover Letter"
}
} catch (error) {
console.error('Error:', error);
alert('Something went wrong. Please try again.');
outputSection.style.display = "none";
}
});
document.getElementById("generateCoverLetterBtn").addEventListener("click", async function () {
const extractedResumeText = document.getElementById("resumeTextOutput").value;
const jobDescription = document.getElementById("jobDescription").value;
if (!extractedResumeText.trim()) {
alert("Please confirm the extracted resume text.");
return;
}
if (!jobDescription.trim()) { if (!jobDescription.trim()) {
alert("Please enter a job description."); alert("Please enter a job description.");
return; return;
} }
const formData = new FormData(); const requestData = {
formData.append("resume", file); extractedResumeText,
formData.append("jobDescription", jobDescription); jobDescription,
};
try { try {
const response = await fetch('/generate', { const response = await fetch("/generate", {
method: "POST", method: "POST",
body: formData, headers: { "Content-Type": "application/json" },
body: JSON.stringify(requestData),
}); });
const result = await response.json(); const data = await response.json();
if (result.coverLetter) { if (data.error) {
coverLetterOutput.value = result.coverLetter; alert("Error: " + data.error);
downloadBtn.style.display = 'block';
} else { } else {
alert('Error Generating Cover Letter (Check Console for more details'); document.getElementById("coverLetterOutput").innerText = data.coverLetter;
outputSection.style.display = 'none' // Hides the output on erros document.getElementById("coverLetterSection").style.display = "block"; // Show cover letter section
} }
} catch (error) { } catch (error) {
console.error('Error:', error); console.error("Error generating cover letter:", error);
alert('Something went wrong. Please try again.'); alert("Something went wrong. Please try again.");
outputSection.style.display = "none";
} finally {
generateBtn.disabled = false;
generateBtn.textContent = 'Generate Cover Letter';
} }
}); });
document.getElementById('downloadBtn').addEventListener('click', async function () { document.getElementById('downloadBtn').addEventListener('click', async function () {