fix: admin table i18n + emoji preservation in nav items
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s

- Admin panel: table headers, data values, date locale-aware
- Settings/help nav: emojis added to locale values (🔍🔧🔄 etc.)
- auth.js: getLocale import, t() for all user-facing strings
- Added common.never + 6 admin column keys
- 746 locale keys per language
This commit is contained in:
2026-06-18 15:16:08 -04:00
parent bd8d6ccf63
commit 7977cb89aa
3 changed files with 76 additions and 60 deletions
+8 -6
View File
@@ -2,7 +2,7 @@
import { state } from './state.js';
import { safeCreateIcons } from './utils.js';
import { showToast, closeHeaderMenu } from './ui.js';
import { t } from './i18n.js';
import { t, getLocale } from './i18n.js';
import { showWelcome } from './viewer.js';
// ---------------------------------------------------------------------------
@@ -398,11 +398,13 @@ const AdminPanel = {
container.innerHTML = '<p style="padding:16px;color:var(--text-muted);">Aucun utilisateur.</p>';
return;
}
let html = '<table class="admin-table"><thead><tr>' + "<th>Utilisateur</th><th>Rôle</th><th>Vaults</th><th>Statut</th><th>Dernière connexion</th><th>Actions</th>" + "</tr></thead><tbody>";
let html = '<table class="admin-table"><thead><tr>' +
'<th>' + t('admin.col_user') + '</th><th>' + t('admin.col_role') + '</th><th>' + t('admin.col_vaults') + '</th><th>' + t('admin.col_status') + '</th><th>' + t('admin.col_last_login') + '</th><th>' + t('admin.col_actions') + '</th>' +
'</tr></thead><tbody>';
users.forEach((u) => {
const vaults = u.vaults.includes("*") ? "Toutes" : u.vaults.join(", ") || "Aucune";
const vaults = u.vaults.includes("*") ? t('common.all') : u.vaults.join(", ") || t('common.none');
const status = u.active ? "✅" : "🔴";
const lastLogin = u.last_login ? new Date(u.last_login).toLocaleDateString("fr-FR", { day: "numeric", month: "short", year: "numeric", hour: "2-digit", minute: "2-digit" }) : "Jamais";
const lastLogin = u.last_login ? new Date(u.last_login).toLocaleDateString(getLocale() === 'fr' ? 'fr-FR' : 'en-US', { day: "numeric", month: "short", year: "numeric", hour: "2-digit", minute: "2-digit" }) : t('common.never');
html +=
"<tr>" +
"<td><strong>" +
@@ -427,10 +429,10 @@ const AdminPanel = {
'<td class="admin-actions">' +
'<button class="admin-action-btn" data-action="edit" data-username="' +
u.username +
'" title="Modifier">✏️</button>' +
'" title="' + t('common.edit') + '">✏️</button>' +
'<button class="admin-action-btn danger" data-action="delete" data-username="' +
u.username +
'" title="Supprimer">🗑️</button>' +
'" title="' + t('common.delete') + '">🗑️</button>' +
"</td></tr>";
});
html += "</tbody></table>";