Files
netwatch/NEXT_STEPS.md
fixclean 0d3c6e1ae7 feat: Implement floors, locations, and racks management
- 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.
2026-02-11 14:34:07 +01:00

3.3 KiB

📋 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:

// 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: .*.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:

# 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! 🚀