NORUS2 / static /js /script.js
mabil's picture
Uploaded NORUS app files
af53f00
document.addEventListener("DOMContentLoaded", function () {
const logoLink = document.getElementById("logo-link");
if (logoLink) {
logoLink.addEventListener("click", function () {
const logo = document.getElementById("logo");
logo.style.transform = "scale(1.5)";
setTimeout(() => {
logo.style.transform = "scale(1)";
}, 500);
});
}
function startProgress() {
const progressBar = document.getElementById("progress-bar");
const progressContainer = document.getElementById("progress-container");
const analyzeBtn = document.querySelector("button[type='submit']");
if (progressBar && progressContainer && analyzeBtn) {
progressContainer.style.display = "block";
analyzeBtn.disabled = true;
analyzeBtn.textContent = "⏳ Analysis in progress...";
let width = 0;
const totalTime = 180000; // 3 minutes
const intervalTime = totalTime / 100;
const interval = setInterval(() => {
if (width >= 100) {
clearInterval(interval);
progressBar.textContent = "100%";
setTimeout(() => {
progressContainer.style.display = "none";
progressBar.style.width = "0%";
progressBar.textContent = "0%";
analyzeBtn.disabled = false;
analyzeBtn.textContent = "Analyze";
}, 1000);
} else {
width += 1;
progressBar.style.width = width + "%";
progressBar.textContent = width + "%";
}
}, intervalTime);
// fallback di sicurezza
setTimeout(() => {
analyzeBtn.disabled = false;
analyzeBtn.textContent = "Analyze";
progressContainer.style.display = "none";
progressBar.style.width = "0%";
progressBar.textContent = "0%";
}, totalTime + 3000);
}
}
window.startProgress = startProgress;
const analysisForm = document.getElementById("analysisForm");
if (analysisForm) {
analysisForm.addEventListener("submit", function () {
startProgress();
});
}
const analysisType = document.getElementById("analysis_type");
if (analysisType) {
analysisType.addEventListener("change", function () {
document.getElementById("pubmed-options").style.display =
this.value === "pubmed" ? "block" : "none";
document.getElementById("local-options").style.display =
this.value === "local" ? "block" : "none";
});
analysisType.dispatchEvent(new Event("change"));
}
const fileInput = document.getElementById("pdf_file");
if (fileInput) {
fileInput.addEventListener("change", function () {
const fileLabel = document.querySelector('label[for="pdf_file"]');
if (fileInput.files.length > 0 && fileLabel) {
fileLabel.textContent = `Main PDF selected: ${fileInput.files[0].name}`;
}
});
}
const comparisonInput = document.getElementById("comparison_files");
if (comparisonInput) {
comparisonInput.addEventListener("change", function () {
const label = document.querySelector('label[for="comparison_files"]');
if (comparisonInput.files.length > 0 && label) {
label.textContent = `${comparisonInput.files.length} comparison files selected`;
}
});
}
const flashMessages = document.querySelectorAll(".error");
if (flashMessages.length > 0) {
setTimeout(() => {
flashMessages.forEach(message => message.remove());
}, 5000);
}
});