EALPR_FLASK / templates /admin /users.html
Pant0x's picture
Final synced deploy v2 - Fix session and timeouts
cd01269
Raw
History Blame Contribute Delete
2.49 kB
{% extends "base.html" %}
{% block title %}User Management β€” Ain El Aql{% endblock %}
{% block body %}
<div class="app-layout">
{% with role='admin', active='users' %}
{% include "partials/sidebar.html" %}
{% endwith %}
<main class="main-content">
<div class="page-header fade-in">
<h1 class="page-title">User Management</h1>
<p class="page-subtitle">View and manage all registered users.</p>
</div>
<div class="card fade-in">
<div class="card-header">
<span class="card-title">πŸ‘₯ All Users</span>
<button class="btn btn-outline" onclick="loadUsers()">πŸ”„ Refresh</button>
</div>
<div class="table-wrapper">
<table>
<thead>
<tr>
<th>Name</th>
<th>Username</th>
<th>Role</th>
<th>Phone</th>
<th>Email</th>
</tr>
</thead>
<tbody id="usersBody">
<tr><td colspan="5" class="text-center" style="padding:2rem;color:var(--text-muted);">Loading users...</td></tr>
</tbody>
</table>
</div>
</div>
</main>
</div>
{% endblock %}
{% block scripts %}
<script>
async function loadUsers() {
const body = document.getElementById('usersBody');
try {
const res = await fetch('/admin/api/users');
const data = await res.json();
const users = Array.isArray(data) ? data : (data.users || data.data || []);
if (!users.length) {
body.innerHTML = '<tr><td colspan="5" class="text-center" style="padding:2rem;color:var(--text-muted);">No users found.</td></tr>';
return;
}
body.innerHTML = users.map(u => {
const name = u.full_name || (u.first_name + ' ' + (u.last_name || '')) || 'β€”';
const role = u.role || 'user';
const roleClass = role === 'admin' ? 'status-registered' : (role === 'security' ? 'status-active' : 'status-unregistered');
return `<tr>
<td style="font-weight:bold;color:white;">${name}</td>
<td class="mono">${u.username || 'β€”'}</td>
<td><span class="status ${roleClass}">${role.toUpperCase()}</span></td>
<td>${u.phone_number || 'β€”'}</td>
<td>${u.email || 'β€”'}</td>
</tr>`;
}).join('');
} catch (err) {
console.error(err);
body.innerHTML = '<tr><td colspan="5" class="text-center" style="padding:2rem;color:var(--error);">Failed to load users.</td></tr>';
}
}
loadUsers();
</script>
{% endblock %}