- 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.
143 lines
3.3 KiB
Markdown
143 lines
3.3 KiB
Markdown
# 📋 NÄCHSTE ARBEITSPAKETE
|
|
|
|
## 🎯 Für die nächsten Sessions
|
|
|
|
### Package 1: Fehlerbehandlung & Sessions (1-2h)
|
|
- [ ] Session-Handling in `bootstrap.php` implementieren
|
|
- [ ] 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:
|
|
```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! 🚀**
|