Add JS
This commit is contained in:
parent
df1060b3b0
commit
2e1b507f87
75
JS
Normal file
75
JS
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
// Include SweetAlert2 in your HTML file for beautiful popups
|
||||||
|
// <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|
||||||
|
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
|
Loading…
x
Reference in New Issue
Block a user