-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusers.js
More file actions
98 lines (84 loc) · 3.11 KB
/
users.js
File metadata and controls
98 lines (84 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
document.addEventListener("DOMContentLoaded", () => {
checkSession();
loadUsers();
setupAddUserButton();
const logoutBtn = document.getElementById("logoutBtn");
if (logoutBtn) {
logoutBtn.addEventListener("click", logout);
}
});
async function checkSession() {
try {
const response = await fetch("dashboard.php");
if (!response.ok) {
window.location.href = "login.html";
return;
}
const data = await response.json();
const userName = document.getElementById("userName");
if (userName) {
userName.textContent = `${data.firstname} ${data.lastname}`;
}
if (data.role !== 'admin') {
document.querySelectorAll('.menu-item a[href="users.html"]').forEach(a => {
const item = a.closest('.menu-item');
if (item) item.style.display = 'none';
});
}
} catch (error) {
window.location.href = "login.html";
}
}
function setupAddUserButton() {
const addUserBtn = document.querySelector(".add-user-button");
if (addUserBtn) {
addUserBtn.addEventListener("click", () => {
window.location.href = "add_user.html";
});
}
}
async function loadUsers() {
const tbody = document.getElementById("usersList");
if (!tbody) return;
try {
tbody.innerHTML = '<tr><td colspan="4" style="text-align: center; padding: 20px;">Loading users...</td></tr>';
const response = await fetch("users.php");
const users = await response.json();
if (!response.ok) {
alert("Failed to load users");
return;
}
tbody.innerHTML = "";
if (!users || users.length === 0) {
tbody.innerHTML = '<tr><td colspan="4" style="text-align: center; padding: 20px; color: #666;">No users found</td></tr>';
return;
}
users.forEach(user => {
const row = document.createElement("tr");
const date = new Date(user.created_at);
const formattedDate = date.toLocaleDateString("en-US", {
year: "numeric",
month: "short",
day: "numeric"
});
row.innerHTML = `
<td>${user.firstname} ${user.lastname}</td>
<td>${user.email}</td>
<td><span class="user-role ${user.role.toLowerCase()}">${user.role}</span></td>
<td>${formattedDate}</td>
`;
tbody.appendChild(row);
});
} catch (error) {
console.error(error);
tbody.innerHTML = '<tr><td colspan="4" style="text-align: center; padding: 20px; color: #e74c3c;">Error loading users. Please try again.</td></tr>';
}
}
async function logout() {
try {
await fetch("logout.php", { method: "POST" });
window.location.href = "login.html";
} catch (error) {
alert("Logout failed");
}
}