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