checkAuthentication(); function checkAuthentication() { fetch("/check-authentication/") // Replace with your Django URL .then((response) => response.json()) .then((data) => { if (data.authenticated) { // console.log("User is authenticated"); updateSessionTime(); } else { // console.log("User is not authenticated"); } }) .catch((error) => console.error("Error:", error)); } function resetSession() { document.getElementById("session-container").classList.add("session-collapsible"); clearInterval(sessionInterval); clearTimeout(sessionTimout); // updateSessionTime(); checkAuthentication(); } function updateSessionTime() { // console.log("updateSessionTime"); fetch("/session-expiry-time/") .then((response) => response.json()) .then((data) => { // Json data var sessionExpiryTime = data.session_expiry_time; var sessionAlertTime = data.session_alert_time * 60; // min to sec // Calculate remaining time var expiryTime = new Date(sessionExpiryTime * 1000); var currentTime = new Date(); var remainingTime = Math.floor((expiryTime - currentTime) / 1000); // set session timeout and interval function sessionTimout = setTimeout(logoutFunction, remainingTime * 1000); sessionInterval = setInterval(displayTime, 1000); // set displaytime function for sessioninterval function displayTime() { remainingTime -= 1; var minutes = Math.floor(remainingTime / 60); var seconds = remainingTime % 60; var minutes_text = minutes < 10 ? `0${minutes}` : minutes; var seconds_text = seconds < 10 ? `0${seconds}` : seconds; document.getElementById("session-remaining-time").textContent = `${minutes_text}:${seconds_text}`; if (remainingTime < sessionAlertTime) { document.getElementById("session-container").classList.remove("session-collapsible"); } } }); } function logoutFunction() { fetch("/logout") .then((response) => { if (response.ok) { window.location.href = "/login"; } else { console.error("Logout failed"); } }) .catch((error) => { console.error("Logout failed:", error); }); }