Fix leere Nutzertabelle: Fehler-Handler + DB-Fallback fuer loadUsers

- admin.js: .fail() Handler zeigt Fehlermeldung in der Tabelle statt stille Leere
- server.js: Fallback-Query (SELECT *) wenn role/created_at Spalten fehlen
- Server loggt DB-Fehler statt sie zu verschlucken

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kroonk
2026-04-16 21:48:19 +02:00
parent c37aa3261c
commit 2dcd559501
3 changed files with 23 additions and 7 deletions

View File

@@ -26,12 +26,18 @@ $(document).ready(function() {
$('#users-tbody').empty();
$('#user-select').html('<option value="">Nutzer waehlen...</option>');
if (!users || users.length === 0) {
$('#users-tbody').html('<tr><td colspan="5" style="text-align:center;">Keine Nutzer gefunden</td></tr>');
return;
}
users.forEach(function(u) {
var badge = '<span class="badge badge-' + u.role + '">' + u.role + '</span>';
var role = u.role || 'unbekannt';
var badge = '<span class="badge badge-' + role + '">' + role + '</span>';
var created = u.created_at ? new Date(u.created_at).toLocaleDateString('de-DE') : '-';
var info = created;
if (u.role === 'client' && u.expires_at) {
if (role === 'client' && u.expires_at) {
var expDate = new Date(u.expires_at).toLocaleDateString('de-DE');
if (u.expired) {
badge = '<span class="badge badge-expired">abgelaufen</span>';
@@ -46,15 +52,18 @@ $(document).ready(function() {
$('#users-tbody').append(
'<tr><td>' + u.id + '</td><td>' + u.username + ' ' + badge +
'</td><td>' + u.role + '</td><td>' + info +
'</td><td>' + role + '</td><td>' + info +
'</td><td>' + actions + '</td></tr>'
);
// Dropdown fuer Ordner-Zuweisung (nur non-admin)
if (u.role !== 'admin') {
$('#user-select').append('<option value="' + u.id + '">' + u.username + ' (' + u.role + ')</option>');
if (role !== 'admin') {
$('#user-select').append('<option value="' + u.id + '">' + u.username + ' (' + role + ')</option>');
}
});
}).fail(function(xhr) {
var msg = 'HTTP ' + xhr.status + ': ' + xhr.statusText;
$('#users-tbody').html('<tr><td colspan="5" style="color:#e44d26;">Fehler beim Laden: ' + msg + '</td></tr>');
});
}