From 2e1b507f87892f10ba4149da7e5c281b51050fd7 Mon Sep 17 00:00:00 2001 From: Paramita Pahari Date: Sun, 13 Apr 2025 15:42:13 +0000 Subject: [PATCH] Add JS --- JS | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 JS diff --git a/JS b/JS new file mode 100644 index 0000000..8dfcb9c --- /dev/null +++ b/JS @@ -0,0 +1,75 @@ +// Include SweetAlert2 in your HTML file for beautiful popups +// + +let inactivityTime = 0; // Inactivity counter in minutes +const maxInactivityTime = 5; // Maximum inactivity time in minutes + +// WebSocket connection +const socket = new WebSocket("ws://localhost:8082"); + +// WebSocket event listeners +socket.onopen = () => { + console.log("WebSocket connection established."); +}; + +socket.onmessage = (event) => { + console.log("Message from server:", event.data); +}; + +socket.onerror = (error) => { + console.error("WebSocket error:", error); +}; + +socket.onclose = () => { + console.log("WebSocket connection closed."); +}; + +// Function to reset inactivity timer +function resetInactivityTimer() { + inactivityTime = 0; +} + +// Function to show inactivity popup +function showInactivityPopup() { + Swal.fire({ + title: "Inactivity Detected", + text: "You have been inactive for more than 5 minutes. Do you want to stay logged in?", + icon: "warning", + showCancelButton: true, + confirmButtonText: "Stay Logged In", + cancelButtonText: "Log Out", + }).then((result) => { + if (result.isConfirmed) { + resetInactivityTimer(); // Reset timer if user chooses to stay logged in + } else { + logoutUser(); // Logout user if they choose to log out + } + }); +} + +// Function to log out the user +function logoutUser() { + Swal.fire({ + title: "Logged Out", + text: "You have been logged out due to inactivity.", + icon: "info", + confirmButtonText: "OK", + }).then(() => { + // Add your logout logic here, e.g., redirect to login page or call logout API + window.location.href = "/logout"; // Example: Redirect to logout page + }); +} + +// Event listeners to detect user activity +document.addEventListener("mousemove", resetInactivityTimer); +document.addEventListener("keydown", resetInactivityTimer); +document.addEventListener("mousedown", resetInactivityTimer); +document.addEventListener("mouseup", resetInactivityTimer); + +// Timer to check inactivity every minute +setInterval(() => { + inactivityTime++; + if (inactivityTime >= maxInactivityTime) { + showInactivityPopup(); + } +}, 60000); // 60000 ms = 1 minute \ No newline at end of file