feat: Admin-Benutzerverwaltung + Dashboard-Layout-Fixes

Backend:
- AdminEndpoint.cs: 5 Endpunkte (List, Create, Update, Reset PW, Delete) - Admin-only
- DatabaseService: CreateUser(), UpdateUserAdmin(), DeleteUser() (kaskadiert Tokens + Shares)
- Route in Program.cs registriert

Frontend:
- admin-page.js: User-Liste mit Edit/Delete, Inline-Formular Create/Edit
- api.js: 5 Admin-API-Funktionen
- index.html: Template tpl-admin, Script-Tag, Dashboard-Link 'Benutzerverwaltung'
- dashboard.js: Admin-Link nur für Admins sichtbar
- form.css: Styles für admin-user-list, admin-user-row, admin-checkbox-row
- dashboard.css: Header-Overflow-Fix, Agents vor Cronjobs
- index.html: Template-Reihenfolge Agents vor Cronjobs

TODO: User-Management als erledigt markiert
This commit is contained in:
Meleki committed 2026-03-05 19:19:16 +01:00
1 parent 489b5e0eb0
commit 3ef78b5eb1
10 files changed
+667 -57

No files matched your search

+44 -1
View File
@@ -190,7 +190,6 @@ label.skill-item {
.skill-warning {
color: var(--dangerous);
font-size: var(--font-size-sm, 0.8em);
margin-left: auto;
}
@@ -364,3 +363,47 @@ label.skill-item {
font-size: var(--font-size);
opacity: var(--semi-transparent);
}
/* ── Admin User List ── */
.admin-user-list {
display: flex;
flex-direction: column;
}
.admin-user-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: var(--box-padding);
}
.admin-user-info {
display: flex;
flex-direction: column;
}
.admin-user-name {
font-weight: bold;
}
.admin-user-meta {
opacity: var(--semi-transparent);
}
.admin-user-actions {
display: flex;
gap: var(--badge-spacing);
flex-shrink: 0;
}
.admin-checkbox-row {
margin: var(--badge-spacing) 0;
}
.admin-checkbox-row .toggle-label {
display: flex;
align-items: center;
gap: var(--badge-spacing);
cursor: pointer;
}