- Added list, edit, and save functionalities for floors, locations, and racks. - Enhanced UI with search and filter options for better usability. - Implemented SVG upload for floor plans in the floors module. - Added validation for required fields in the save processes. - Improved navigation in the header to reflect new modules. - Styled forms and tables for a consistent look and feel across modules.
3.3 KiB
3.3 KiB
📋 NÄCHSTE ARBEITSPAKETE
🎯 Für die nächsten Sessions
Package 1: Fehlerbehandlung & Sessions (1-2h)
- Session-Handling in
bootstrap.phpimplementieren - Error-Messages in Session speichern ($SESSION['error'], $SESSION['success'])
- Header mit Fehlermeldungen in Layout
- Validierungsfehler anzeigen
Package 2: Delete-Funktionen (1h)
- DELETE-Endpoints für alle Module
- AJAX-Bestätigung vor Löschen
- Kaskadierendes Löschen prüfen (z.B. Floor → Racks)
Package 3: Port-Management (2-3h)
- Ports zu Device-Types verwalten
- Ports zu Devices anzeigen
- Port-Status (aktiv/inaktiv)
- VLAN-Zuordnung zu Ports
Package 4: SVG-Editor für Floorplans (4-5h)
- Interaktiver SVG-Editor für Rooms
- Netzwerkdosen platzieren
- Dosen nummerieren
- Speicher-Integration
Package 5: Navigation & UI (1-2h)
- Breadcrumbs hinzufügen
- Mobile-Menü verbessern
- CSS polieren (Farben, Abstände)
- Dark-Mode (optional)
📚 Code-Referenzen
Template für neue CRUD-Module:
// list.php: Filter + Tabelle
// edit.php: Formular
// save.php: POST-Handler mit Validierung
// Immer verwenden:
$sql->get() // SELECT mit Bind-Params
$sql->single() // SELECT LIMIT 1
$sql->set() // INSERT/UPDATE
Filter-Pattern (in allen List-Modules):
$where = [];
$types = '';
$params = [];
if ($search !== '') {
$where[] = "name LIKE ?";
$types .= "s";
$params[] = "%$search%";
}
$whereSql = $where ? "WHERE " . implode(" AND ", $where) : "";
// Dann in Query einsetzen
Styling-Pattern:
- Buttons:
.button,.button-primary,.button-danger,.button-small - Tabellen:
.*.listKlasse mit th/td Styling - Forms:
.edit-form,.form-group,.form-actions - States:
.empty-state,.filter-form
🔧 Bekannte TODOs im Code
Alle noch offenen Punkte sind mit // TODO: gekennzeichnet:
# Alle TODOs finden:
grep -r "TODO:" app/modules/ --include="*.php"
Wichtigste TODOs:
index.php:19- Session starten*/save.php- Fehlerbehandlungconnections/- Port-Verknüpfunglib/auth.php- Auth-Logik
💾 Datenbank-Setup
Die Datenbank wird automatisch durch init.sql initialisiert.
Wichtige Tabellen:
locations- Standortebuildings- Gebäudefloors- Stockwerkerooms- Räumenetwork_outlets- Netzwerkdosendevice_types- Gerätetypendevice_type_ports- Port-Templatesdevices- konkrete Gerätedevice_ports- Gerätportsracks- Racksconnections- Verbindungen zwischen Ports
🧪 Testing-Checklist
Bei jeder Änderung checken:
- Formular sendet Daten korrekt
- Daten werden in DB gespeichert
- Liste zeigt neue Daten
- Edit lädt existierende Daten vor
- Filter funktioniert
- Validierungsfehler werden angezeigt
🎨 Design-Richtlinien
Farben:
- Primary (Buttons):
#007bff(Blau) - Success (Speichern):
#28a745(Grün) - Danger (Löschen):
#dc3545(Rot) - Background:
#f9f9f9(Hell) - Border:
#ddd(Hell-Grau)
Spacing:
- Padding in Forms:
15px(fieldset),8px(input) - Gap zwischen Buttons:
10px - Margin:
20px(oben/unten),0(inline)
Schriftarten:
- Erben von HTML (derzeit: System)
- Monospace für Code/IDs:
font-family: monospace
Happy Coding! 🚀