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.
+
+
+
+
+
+
+
+
+
+
+ | Username |
+ Anzeigename |
+ Admin |
+ Erstellt |
+ Aktionen |
+
+
+
+
+
+
-
-
-
- | Username |
- Anzeigename |
- Admin |
- Erstellt |
- Aktionen |
-
-
-
-
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 |
';
}
}