diff --git a/public/index.html b/public/index.html index 82984a8..cd8ade0 100644 --- a/public/index.html +++ b/public/index.html @@ -1815,22 +1815,39 @@
-

Benutzer-Verwaltung

-
- +
+ + +
+
+

Benutzer-Verwaltung

+

Verwalten Sie die Anmeldedaten und Berechtigungen der Anwender.

+
+ +
+ + +
+
+ + + + + + + + + + + +
UsernameAnzeigenameAdminErstelltAktionen
+
+
- - - - - - - - - - - -
UsernameAnzeigenameAdminErstelltAktionen
diff --git a/public/script.js b/public/script.js index 52fb18b..2ae145d 100644 --- a/public/script.js +++ b/public/script.js @@ -3979,29 +3979,47 @@ document.addEventListener('DOMContentLoaded', function() { async function loadUsers() { const tbody = document.getElementById('usersTableBody'); if (!tbody) return; - tbody.innerHTML = 'Lade...'; + tbody.innerHTML = 'Lade…'; try { const users = await apiRequest('/api/users'); tbody.innerHTML = ''; if (!users.length) { - tbody.innerHTML = 'Keine Benutzer'; + tbody.innerHTML = 'Keine Benutzer'; return; } users.forEach(u => { - const tr = document.createElement('tr'); const isSelf = currentUser && currentUser.username === u.username; + const tr = document.createElement('tr'); + tr.className = 'border-b border-outline-variant/30 even:bg-surface-container-low/50 hover:bg-surface-variant/30 transition-colors'; tr.innerHTML = ` - ${escapeHtml(u.username)}${isSelf ? ' (Sie)' : ''} - ${escapeHtml(u.displayName || '')} - ${u.isAdmin ? '✓' : ''} - ${escapeHtml(formatDateTime(u.createdAt))} - - - + + ${escapeHtml(u.username)} + ${isSelf ? 'Sie' : ''} + + ${escapeHtml(u.displayName || '–')} + + ${u.isAdmin + ? 'verified_user' + : '—'} + + ${escapeHtml(formatDateTime(u.createdAt))} + +
+ + +
`; tr.querySelectorAll('button[data-user-action]').forEach(btn => { btn.addEventListener('click', () => { + if (btn.disabled) return; const action = btn.dataset.userAction; const uuid = btn.dataset.uuid; if (action === 'edit') openUserModal(u); @@ -4011,7 +4029,7 @@ async function loadUsers() { tbody.appendChild(tr); }); } catch (err) { - tbody.innerHTML = 'Fehler beim Laden'; + tbody.innerHTML = 'Fehler beim Laden'; } }