Dieser Commit ist enthalten in:
2025-06-08 22:37:03 +02:00
Ursprung fb83559d58
Commit 472998d16b
11 geänderte Dateien mit 499 neuen und 85 gelöschten Zeilen

Datei anzeigen

@@ -1394,4 +1394,61 @@ ALTER TABLE login_attempts ALTER COLUMN blocked_until TYPE TIMESTAMP WITH TIME Z
- ✅ Copy-Buttons mit Clipboard-API
- ✅ Toggle-Switches ändern Lizenzstatus
- ✅ Bulk-Operationen vollständig implementiert
- ✅ Testdaten erfolgreich eingefügt
- ✅ Testdaten erfolgreich eingefügt
### 2025-06-08: UI/UX Überarbeitung - Phase 4 (Sortierbare Tabellen)
**Problem:**
- Keine Möglichkeit, Tabellen nach verschiedenen Spalten zu sortieren
- Besonders bei großen Datenmengen schwer zu navigieren
**Lösung - Hybrid-Ansatz:**
1. **Client-seitige Sortierung für kleine Tabellen:**
- Dashboard (3 kleine Übersichtstabellen)
- Blocked IPs (typischerweise wenige Einträge)
- Backups (begrenzte Anzahl)
- JavaScript-basierte Sortierung ohne Reload
2. **Server-seitige Sortierung für große Tabellen:**
- Licenses (potenziell tausende Einträge)
- Customers (viele Kunden möglich)
- Audit Log (wächst kontinuierlich)
- Sessions (viele aktive/beendete Sessions)
- URL-Parameter für Sortierung mit SQL ORDER BY
**Implementierung:**
1. **Client-seitige Sortierung:**
- Generische JavaScript-Funktion in base.html
- CSS-Klasse `.sortable-table` für betroffene Tabellen
- Sortier-Indikatoren (↑↓↕) bei Hover/Active
- Unterstützung für Text, Zahlen und deutsche Datumsformate
2. **Server-seitige Sortierung:**
- Query-Parameter `sort` und `order` in Routes
- Whitelist für erlaubte Sortierfelder (SQL-Injection-Schutz)
- Makro-Funktionen für sortierbare Header
- Sortier-Parameter in Pagination-Links erhalten
**Geänderte Dateien:**
- `v2_adminpanel/templates/base.html`: CSS und JavaScript für Sortierung
- `v2_adminpanel/templates/dashboard.html`: Client-seitige Sortierung
- `v2_adminpanel/templates/blocked_ips.html`: Client-seitige Sortierung
- `v2_adminpanel/templates/backups.html`: Client-seitige Sortierung
- `v2_adminpanel/templates/licenses.html`: Server-seitige Sortierung
- `v2_adminpanel/templates/customers.html`: Server-seitige Sortierung
- `v2_adminpanel/templates/audit_log.html`: Server-seitige Sortierung
- `v2_adminpanel/templates/sessions.html`: Server-seitige Sortierung (2 Tabellen)
- `v2_adminpanel/app.py`: 4 Routes erweitert für Sortierung
**Besonderheiten:**
- Sessions-Seite hat zwei unabhängige Tabellen mit eigenen Sortierparametern
- Intelligente Datentyp-Erkennung (numeric, date) für korrekte Sortierung
- Visuelle Sortier-Indikatoren zeigen aktuelle Sortierung
- Alle anderen Filter und Suchparameter bleiben bei Sortierung erhalten
**Status:**
- ✅ Client-seitige Sortierung für kleine Tabellen
- ✅ Server-seitige Sortierung für große Tabellen
- ✅ Sortier-Indikatoren und visuelle Rückmeldung
- ✅ SQL-Injection-Schutz durch Whitelisting
- ✅ Vollständige Integration mit bestehenden Features