163 lines
4.4 KiB
Markdown
163 lines
4.4 KiB
Markdown
# 📋 NÄCHSTE ARBEITSPAKETE
|
|
|
|
## 🎯 Für die nächsten Sessions
|
|
|
|
### Package 1: Fehlerbehandlung & Sessions (1-2h)
|
|
- [x] Session-Handling in `bootstrap.php` implementieren
|
|
- [x] Error-Messages in Session speichern (`$_SESSION['error']`, `$_SESSION['success']`)
|
|
- [x] Header mit Fehlermeldungen in Layout
|
|
- [x] Validierungsfehler anzeigen
|
|
|
|
### Package 2: Delete-Funktionen (1h)
|
|
- [x] DELETE-Endpoints für alle Module
|
|
- [x] AJAX-Bestätigung vor Löschen
|
|
- [x] Kaskadierendes Löschen prüfen (z.B. Floor → Racks)
|
|
|
|
### Package 3: Port-Management (2-3h)
|
|
- [x] Ports zu Device-Types verwalten
|
|
- [x] Ports zu Devices anzeigen
|
|
- [x] Port-Status (aktiv/inaktiv)
|
|
- [x] 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:
|
|
```php
|
|
// 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):
|
|
```php
|
|
$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: `.*.list` Klasse 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:
|
|
|
|
```bash
|
|
# Alle TODOs finden:
|
|
grep -r "TODO:" app/modules/ --include="*.php"
|
|
```
|
|
|
|
Wichtigste TODOs:
|
|
- `index.php:19` - Session starten
|
|
- `*/save.php` - Fehlerbehandlung
|
|
- `connections/` - Port-Verknüpfung
|
|
- `lib/auth.php` - Auth-Logik
|
|
|
|
---
|
|
|
|
## 💾 Datenbank-Setup
|
|
|
|
Die Datenbank wird automatisch durch `init.sql` initialisiert.
|
|
|
|
Wichtige Tabellen:
|
|
- `locations` - Standorte
|
|
- `buildings` - Gebäude
|
|
- `floors` - Stockwerke
|
|
- `rooms` - Räume
|
|
- `network_outlets` - Netzwerkdosen
|
|
- `device_types` - Gerätetypen
|
|
- `device_type_ports` - Port-Templates
|
|
- `devices` - konkrete Geräte
|
|
- `device_ports` - Gerätports
|
|
- `racks` - Racks
|
|
- `connections` - 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! 🚀**
|
|
|
|
## Aktuell offene TODOs (Stand: 18. Februar 2026)
|
|
|
|
- [ ] #15 Neue Verbindung: Es kann keine Netzwerkdose ausgewahlt werden.
|
|
- [ ] #14 Hilfslinien der Stockwerkskarten nur im Edit-Mode anzeigen; im Anzeige-Mode ausblenden.
|
|
- [ ] #11 Encoding- und Umlautfehler beheben (inkl. ae/oe/ue-Themen).
|
|
- [ ] #10 Dashboard-Grafik erzeugen:
|
|
- Oberste Ebene: Locations, ggf. mit Unterordnung.
|
|
- Darunter: Gebaudekomplexe mit Rack-Verbindungen.
|
|
- Darunter: Stockwerke.
|
|
- Darunter: Etagenweise Verbindungen.
|
|
- [ ] #8 Gerate löschen fehlt: Es erfolgt Weiterleitung, aber keine echte Fehlermeldung.
|
|
- [ ] #7 Letzten Punkt im Floor-Editor löschen:
|
|
- URL: `http://localhost/?module=floors&action=edit&id=1`
|
|
- [ ] #5 Dashboard als zoombare und verschiebbare SVG-Flache:
|
|
- Gerate anordnen.
|
|
- Gerate, Ports und Verbindungen anklickbar.
|
|
- Sprechblase mit Infos und Buttons zu Bereichen (editieren, entfernen, ...).
|
|
- [ ] #4 `device_types/edit`: Option "Ports automatisch erstellen" nur beim Erstellen anzeigen, nicht beim Editieren.
|
|
|