|
|
@@ -1,5 +1,6 @@
|
|
|
let currentUsers = [];
|
|
|
let filteredUsers = [];
|
|
|
+let showInactiveUsers = false;
|
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
|
initializeTheme();
|
|
|
@@ -76,7 +77,7 @@ async function loadUsers() {
|
|
|
}));
|
|
|
|
|
|
currentUsers = transformedUsers;
|
|
|
- filteredUsers = [...currentUsers];
|
|
|
+ applyFilters();
|
|
|
displayUsers(filteredUsers);
|
|
|
updateStats(transformedUsers);
|
|
|
showMessage('Users loaded successfully', 'success');
|
|
|
@@ -153,14 +154,35 @@ function updateStats(users) {
|
|
|
}
|
|
|
|
|
|
function filterUsers() {
|
|
|
+ applyFilters();
|
|
|
+ displayUsers(filteredUsers);
|
|
|
+}
|
|
|
+
|
|
|
+function applyFilters() {
|
|
|
const searchTerm = document.getElementById('searchInput').value.toLowerCase();
|
|
|
- filteredUsers = currentUsers.filter(user =>
|
|
|
- user.username.toLowerCase().includes(searchTerm) ||
|
|
|
- user.id.toLowerCase().includes(searchTerm) ||
|
|
|
- (user.email && user.email.toLowerCase().includes(searchTerm)) ||
|
|
|
- user.roles.some(role => role.toLowerCase().includes(searchTerm)) ||
|
|
|
- user.status.toLowerCase().includes(searchTerm)
|
|
|
- );
|
|
|
+
|
|
|
+ filteredUsers = currentUsers.filter(user => {
|
|
|
+ // Apply inactive user filter
|
|
|
+ if (!showInactiveUsers && user.status === 'inactive') {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Apply search filter
|
|
|
+ if (searchTerm) {
|
|
|
+ return user.username.toLowerCase().includes(searchTerm) ||
|
|
|
+ user.id.toLowerCase().includes(searchTerm) ||
|
|
|
+ (user.email && user.email.toLowerCase().includes(searchTerm)) ||
|
|
|
+ user.roles.some(role => role.toLowerCase().includes(searchTerm)) ||
|
|
|
+ user.status.toLowerCase().includes(searchTerm);
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+function toggleInactiveUsers() {
|
|
|
+ showInactiveUsers = document.getElementById('showInactiveToggle').checked;
|
|
|
+ applyFilters();
|
|
|
displayUsers(filteredUsers);
|
|
|
}
|
|
|
|