feat: sync DB prefs, update history tab, configurable dashboard shortcuts

- auth store fetchMe(): sync theme/sidebar_position/lang from DB to localStorage+stores on login/refresh
- profilePage setters: PATCH /api/auth/preferences on every preference change
- updatesPage: add history tab (GET /api/updates/history) with job list, click to view output
- dashboardPage: load shortcuts from settings API, fall back to defaults if none configured
- settingsPage: new Raccourcis tab to add/remove/configure dashboard shortcuts (saved as JSON)
- settings.go: expose dashboard_shortcuts in publicSettings for GET/PUT access
- pages.css: add .history-table, .shortcut-row styles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
enzo 2026-03-22 00:35:24 +01:00
parent 780e5ec81d
commit 21e1e0ed1e
6 changed files with 230 additions and 10 deletions

View file

@ -732,3 +732,44 @@
display: block;
line-height: 1;
}
/* ── Historique mises à jour ─────────────────────────────────────────────────── */
.history-table { display: flex; flex-direction: column; gap: 0; }
.history-header, .history-row {
display: grid;
grid-template-columns: 6rem 1fr 6rem 10rem 5rem;
gap: .5rem;
align-items: center;
padding: .5rem .75rem;
}
.history-header {
font-size: .75rem;
font-weight: 600;
color: var(--neu-text-muted);
text-transform: uppercase;
letter-spacing: .04em;
border-bottom: 1px solid var(--neu-border);
}
.history-row {
font-size: .85rem;
cursor: pointer;
border-bottom: 1px solid var(--neu-border);
transition: background .15s;
}
.history-row:last-child { border-bottom: none; }
.history-row:hover { background: var(--neu-bg-hover); border-radius: var(--neu-radius); }
.history-job { font-family: monospace; opacity: .7; }
.history-status.running { color: var(--neu-info); }
.history-status.success { color: var(--neu-success); }
.history-status.error { color: var(--neu-danger); }
/* ── Éditeur de raccourcis ───────────────────────────────────────────────────── */
.shortcuts-editor { display: flex; flex-direction: column; gap: .5rem; }
.shortcut-row {
display: grid;
grid-template-columns: 9rem 1fr 1fr 2rem;
gap: .5rem;
align-items: center;
}
.shortcut-icon-sel { padding: .4rem .5rem; font-size: .85rem; }
.shortcut-label, .shortcut-href { font-size: .85rem; }