DB Sortsystem
Dieser Commit ist enthalten in:
59
JOURNAL.md
59
JOURNAL.md
@@ -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
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren