feat(admin): frontend dashboard complet pour #71
CI / lint (push) Successful in 36s
CI / security (push) Successful in 23s
CI / test (push) Successful in 46s
CI / build (push) Successful in 22s
CI / e2e (push) Successful in 5m43s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
CI / lint (push) Successful in 36s
CI / security (push) Successful in 23s
CI / test (push) Successful in 46s
CI / build (push) Successful in 22s
CI / e2e (push) Successful in 5m43s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
Page admin standalone + widgets temps réel + CRUD users via AdminPanel existant.
- frontend/admin.html : page admin (header + 4 sections : stats temps réel,
audit logs, backups, gestion utilisateurs + footer)
- frontend/js/admin.js : module ES avec init(), connectSSE(), loadStatsOnce(),
loadAuditLogs(), loadBackupStats(), renderStatsWidget(), renderAuditTable(),
renderBackups() + helpers (formatBytes, formatUptime, severityColor)
- frontend/locales/{fr,en}.json : 36 clés admin.* identiques (diff vérifié)
- frontend/js/auth.js : adminRow.onclick redirige vers /admin.html (au lieu de
AdminPanel.show() qui reste fonctionnel)
- tests/frontend/unit.test.mjs : 3 nouveaux tests (admin.js existe + exports + parse)
- tests/test_auth_api.py : 2 nouveaux tests smoke (PATCH + DELETE /api/auth/admin/users)
Vérifié :
- pytest : 494 passed, 5 skipped (492 baseline + 2 nouveaux)
- frontend unit : 7 passed (4 baseline + 3 admin)
- validate-imports : 30 modules validated (29 + admin.js)
- pane-manager JSDOM : 9/9 passed
- ruff check backend/ : All checks passed
This commit is contained in:
@@ -42,6 +42,19 @@
|
||||
"about.tests": "Tests",
|
||||
"about.vaults_configured": "Configured vaults",
|
||||
"about.version": "Version",
|
||||
"admin.audit_all_actions": "All actions",
|
||||
"admin.audit_empty": "No log available",
|
||||
"admin.audit_filter_action": "Action",
|
||||
"admin.audit_filter_user": "Filter by user",
|
||||
"admin.audit_refresh": "Refresh",
|
||||
"admin.audit_title": "Audit logs",
|
||||
"admin.back_btn": "← Back",
|
||||
"admin.backups_newest": "Newest: {days} days",
|
||||
"admin.backups_oldest": "Oldest: {days} days",
|
||||
"admin.backups_per_vault": "Per vault",
|
||||
"admin.backups_title": "Backup statistics",
|
||||
"admin.backups_total": "Total: {count} backups ({size})",
|
||||
"admin.backups_vault_empty": "No backup",
|
||||
"admin.close": "Close",
|
||||
"admin.col_actions": "Actions",
|
||||
"admin.col_last_login": "Last login",
|
||||
@@ -49,8 +62,22 @@
|
||||
"admin.col_status": "Status",
|
||||
"admin.col_user": "User",
|
||||
"admin.col_vaults": "Vaults",
|
||||
"admin.forbidden_msg": "You must be an administrator to access this page.",
|
||||
"admin.forbidden_title": "Access denied",
|
||||
"admin.header_subtitle": "Administrator dashboard",
|
||||
"admin.new_user": "+ New user",
|
||||
"admin.page_title": "ObsiGate — Administration",
|
||||
"admin.stats_cpu": "CPU",
|
||||
"admin.stats_disk": "Disk",
|
||||
"admin.stats_memory": "Memory",
|
||||
"admin.stats_refresh": "Last update: {time}",
|
||||
"admin.stats_sessions": "Active sessions",
|
||||
"admin.stats_title": "Real-time statistics",
|
||||
"admin.stats_uptime": "Uptime",
|
||||
"admin.title": "Administration — Users",
|
||||
"admin.users_manage_btn": "Manage users",
|
||||
"admin.users_manage_hint": "Open the user management modal (full CRUD)",
|
||||
"admin.users_title": "User management",
|
||||
"ai.casual": "Casual tone",
|
||||
"ai.completion_added": "AI: completion added",
|
||||
"ai.continue": "Continue",
|
||||
|
||||
@@ -42,6 +42,19 @@
|
||||
"about.tests": "Tests",
|
||||
"about.vaults_configured": "Vaults configurés",
|
||||
"about.version": "Version",
|
||||
"admin.audit_all_actions": "Toutes les actions",
|
||||
"admin.audit_empty": "Aucun log disponible",
|
||||
"admin.audit_filter_action": "Action",
|
||||
"admin.audit_filter_user": "Filtrer par utilisateur",
|
||||
"admin.audit_refresh": "Rafraîchir",
|
||||
"admin.audit_title": "Logs d'audit",
|
||||
"admin.back_btn": "← Retour",
|
||||
"admin.backups_newest": "Plus récent : {days} jours",
|
||||
"admin.backups_oldest": "Plus ancien : {days} jours",
|
||||
"admin.backups_per_vault": "Par vault",
|
||||
"admin.backups_title": "Statistiques backups",
|
||||
"admin.backups_total": "Total : {count} backups ({size})",
|
||||
"admin.backups_vault_empty": "Aucun backup",
|
||||
"admin.close": "Fermer",
|
||||
"admin.col_actions": "Actions",
|
||||
"admin.col_last_login": "Dernière connexion",
|
||||
@@ -49,8 +62,22 @@
|
||||
"admin.col_status": "Statut",
|
||||
"admin.col_user": "Utilisateur",
|
||||
"admin.col_vaults": "Vaults",
|
||||
"admin.forbidden_msg": "Vous devez être administrateur pour accéder à cette page.",
|
||||
"admin.forbidden_title": "Accès refusé",
|
||||
"admin.header_subtitle": "Tableau de bord administrateur",
|
||||
"admin.new_user": "+ Nouvel utilisateur",
|
||||
"admin.page_title": "ObsiGate — Administration",
|
||||
"admin.stats_cpu": "CPU",
|
||||
"admin.stats_disk": "Disque",
|
||||
"admin.stats_memory": "Mémoire",
|
||||
"admin.stats_refresh": "Dernière mise à jour : {time}",
|
||||
"admin.stats_sessions": "Sessions actives",
|
||||
"admin.stats_title": "Statistiques temps réel",
|
||||
"admin.stats_uptime": "Uptime",
|
||||
"admin.title": "Administration — Utilisateurs",
|
||||
"admin.users_manage_btn": "Gérer les utilisateurs",
|
||||
"admin.users_manage_hint": "Ouvrir la modale de gestion des utilisateurs (CRUD complet)",
|
||||
"admin.users_title": "Gestion utilisateurs",
|
||||
"ai.casual": "Ton décontracté",
|
||||
"ai.completion_added": "AI: complétion ajoutée",
|
||||
"ai.continue": "Continuer",
|
||||
|
||||
Reference in New Issue
Block a user