From ec20fa2f969235ebdb88cdc9e92a2736c506f8db Mon Sep 17 00:00:00 2001 From: fixclean Date: Wed, 18 Feb 2026 09:29:57 +0100 Subject: [PATCH] docs: update open TODO status and patchpanel documentation - refresh TODO.md section for bugs/docs/status files - align implementation status for delete/auth progress - mark patchpanel infrastructure and floor SVG editor status in README - finalize database patchpanel status notes and init.sql connection rules --- IMPLEMENTATION_STATUS.md | 10 +++++----- README.md | 14 +++++++------- TODO.md | 20 ++++++++++---------- doc/DATABASE.md | 8 ++++---- init.sql | 5 ++++- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/IMPLEMENTATION_STATUS.md b/IMPLEMENTATION_STATUS.md index 31143d3..fa00b55 100644 --- a/IMPLEMENTATION_STATUS.md +++ b/IMPLEMENTATION_STATUS.md @@ -70,16 +70,16 @@ 2. **Datenbank-Zugriff** - SQL-Klasse lädt und speichert Daten 3. **Responsive Design** - Alle Formulare und Listen sind formatiert 4. **Filter & Suche** - Alle Module haben Suchfunktionen -5. **CRUD-Operationen** - Create, Read, Update für alle Hauptmodule +5. **CRUD-Operationen** - Create, Read, Update, Delete für alle Hauptmodule --- ## ⚠️ Noch zu machen (Not-Must-Have) ### Höhere Priorität: -- [ ] **Delete-Funktionen** - Löschen noch als TODO (als AJAX implementieren) +- [x] **Delete-Funktionen** - Delete-Endpoints für Kernmodule inkl. `connections` und `floor_infrastructure` umgesetzt - [ ] **Fehlerbehandlung** - Error Pages, Validierungsmeldungen -- [ ] **Session/Auth** - Single-User Auth in bootstrap.php +- [x] **Session/Auth** - Single-User-Auth mit `requireAuth()` und `app/lib/auth.php` eingebunden - [ ] **SVG-Editor** - Interaktiver Floorplan-Editor für Räume/Dosen - [ ] **Port-Management** - Ports zu Geräten zuweisen @@ -106,7 +106,7 @@ app/ ├── lib/ │ ├── _sql.php ✅ DB-Wrapper │ ├── helpers.php ✅ Utility-Funktionen -│ └── auth.php 🚧 TODO: Auth +│ └── auth.php ✅ Auth-Helper + requireAuth() ├── templates/ │ ├── layout.php ✅ HTML-Layout │ ├── header.php ✅ Header/Nav @@ -132,7 +132,7 @@ app/ ## 💡 Nächste Schritte (empfohlen) 1. **Testen Sie die Module** - Probieren Sie Anlegen/Bearbeiten aus -2. **Implementieren Sie Delete-Funktionen** - Mit AJAX oder POST +2. **Delete-Flows prüfen** - Sonderfälle und Fehlermeldungen bei Abhängigkeiten testen 3. **Bessere Fehlerbehandlung** - Sessions für Error-Messages 4. **Mobile-Optimierung** - Responsive Verbesserungen 5. **SVG-Editor für Floorplans** - Visuelles Raumdesign diff --git a/README.md b/README.md index 085703c..278fa07 100644 --- a/README.md +++ b/README.md @@ -238,19 +238,19 @@ Verbindungen werden: - Die untereinander verbundenen Patchpanels lassen sich direkt auf der SVG-Stockwerkskarte verorten, damit jeder Port physisch nachvollziehbar bleibt. - Verbindungen zu Racks / Switches darstellbar -### TODO: Patchpanel-Infrastruktur -- [ ] Floorplans erweitern, damit Patchpanels als feste Infrastrukturobjekte (nicht als rack-basierte `devices`) angelegt, verschoben und mit `x/y`/Größe verankert werden. -- [ ] Backend und SVG-Editor dahingehend adaptieren, dass Patchpanel-Ports unabhängig von Racks definiert werden können. -- [ ] Patchpanel ↔ Patchpanel- und Patchpanel ↔ Netzwerkbuchse-Verbindungen als permanente Kabel zwischen Floorplan-Objekten darstellen und über die `connections`-Tabelle verwalten. -- [ ] UI/Schema-Dokumentation aktualisieren (README + Datenbank-Docs) sowie neue SQL-Tabellen (`floor_patchpanels` / `floor_patchpanel_ports`) fertigstellen. -- [ ] Floorplan-Filter/Legend leiten die Nutzung dieser Infrastrukturobjekte, Kampagnen und Search & Filter integrieren. +### Patchpanel-Infrastruktur (Status: 18. Februar 2026) +- [x] Floorplans erweitert: Patchpanels können als feste Infrastrukturobjekte (ohne Rack-Device) inkl. `x/y` und Größe verwaltet werden. +- [x] Backend + SVG-Editor angepasst: Patchpanel-Ports werden über `floor_patchpanel_ports` gepflegt. +- [x] Patchpanel ↔ Patchpanel und Patchpanel ↔ Netzwerkbuchse werden über `connections` verwaltet. +- [x] SQL-Tabellen `floor_patchpanels` / `floor_patchpanel_ports` sind im Schema enthalten. +- [ ] Floorplan-Filter/Legend und erweiterte Suche für Infrastrukturobjekte weiter ausbauen. ### Stockwerksinfrastruktur-Modul - Das neue Modul „Stockwerksinfrastruktur“ sammelt Patchpanels und Wandbuchsen an einem Ort. - Patchfelder bekommen feste X/Y-Positionen, Maße, Portanzahl und verknüpfen zu Floorplans. - Wandbuchsen sind direkt mit Räumen verbunden, können aber auch später im SVG verteilt werden. - Ziel: Die Floorplan-Grafik zeigt die permanente Infrastruktur samt fest verlegter Kabelverläufe. -- TODO: SVG-Editor um Drag & Drop für diese Objekte erweitern und Klicks direkt mit dem Modul verbinden. +- [x] SVG-Editor für diese Objekte ist mit Drag & Drop umgesetzt und direkt mit dem Modul verbunden. --- diff --git a/TODO.md b/TODO.md index 6cf7f5b..8759b0a 100644 --- a/TODO.md +++ b/TODO.md @@ -20,17 +20,17 @@ Quelle: vorhandene `TODO`-Marker im Repository plus offene Architekturpunkte. ## Offen (Bugs / Doku / Statusdateien) -- [ ] `BUGS.md:3`: Design vereinheitlichen. -- [ ] `IMPLEMENTATION_STATUS.md:80`: Delete-Funktionen-Status aktualisieren. -- [ ] `IMPLEMENTATION_STATUS.md:109`: Auth-Status aktualisieren. -- [ ] `README.md:241`: Patchpanel-Infrastruktur umsetzen und danach Doku abhaken. -- [ ] `README.md:253`: SVG-Editor fuer Floor-Infrastruktur (Drag-and-Drop + direkte Modul-Interaktion). -- [ ] `doc/DATABASE.md:127`: TODO-Abschnitt fuer Patchpanel/Floorplan finalisieren. -- [ ] `init.sql:379`: Kommentar zur Port-Konfiguration in verbindliche Implementierungsregeln ueberfuehren. +- [ ] `BUGS.md`: Design vereinheitlichen. +- [x] `IMPLEMENTATION_STATUS.md`: Delete-Funktionen-Status aktualisiert. +- [x] `IMPLEMENTATION_STATUS.md`: Auth-Status aktualisiert. +- [x] `README.md`: Patchpanel-Infrastruktur-Status nachgezogen. +- [x] `README.md`: SVG-Editor-Status fuer Floor-Infrastruktur nachgezogen. +- [x] `doc/DATABASE.md`: Statusabschnitt fuer Patchpanel/Floorplan finalisiert. +- [x] `init.sql`: Port-Konfigurationsregeln konkretisiert. ## Topologie-Backlog (ausstehend) -- [ ] `connections.port_a_type` / `connections.port_b_type` um `patchpanel` erweitern und auf `floor_patchpanel_ports.id` referenzieren. +- [x] `connections.port_a_type` / `connections.port_b_type` um `patchpanel` erweitert und auf `floor_patchpanel_ports.id` nutzbar gemacht. - [ ] Validierungsregeln fuer Topologie fest verdrahten (Patchpanel-Port nur mit Patchpanel-Port oder Netzwerkbuchsen-Port). -- [ ] Port-CRUD fuer Patchpanels: `floor_patchpanel_ports` aus `port_count` erzeugen/synchronisieren. -- [ ] Port-CRUD fuer Netzwerkbuchsen: `network_outlet_ports` pflegen (mindestens ein Port je Buchse) und in Verbindungen nutzbar machen. +- [x] Port-CRUD fuer Patchpanels: `floor_patchpanel_ports` wird aus `port_count` erzeugt/synchronisiert. +- [x] Port-CRUD fuer Netzwerkbuchsen: `network_outlet_ports` wird gepflegt (mindestens ein Port je Buchse) und ist in Verbindungen nutzbar. diff --git a/doc/DATABASE.md b/doc/DATABASE.md index 893cfe6..62888d6 100644 --- a/doc/DATABASE.md +++ b/doc/DATABASE.md @@ -124,10 +124,10 @@ Die Bühne für Patchpanel-Objekte auf dem Stockwerkplan. - Attributes: Panel-Referenz, `name`, `port_type_id`, optionale VLAN- bzw. Status-Attribute. - Ports werden über `connections` sowohl mit anderen Patchpanels als auch mit Netzwerkbuchsen (`network_outlet_ports`) oder Gerätports verbunden; dadurch lassen sich Router-Kabel grafisch darstellen. -**TODO** -- [ ] Floorplan- und CRUD-Module so erweitern, dass Patchpanels als Floor-Objekte verwaltet und deren Ports gepflegt werden können (`floor_patchpanels`, `floor_patchpanel_ports`). -- [ ] Verbindungen zwischen Patchpanel ↔ Patchpanel und Patchpanel ↔ Netzwerkbuchse standardisiert in der `connections`-Logik abbilden. -- [ ] UI/CSV/Export/Dokumentation nachziehen, damit Planer sofort sehen, wo die permanent installierten Kabel verlaufen. +**Status (18. Februar 2026)** +- [x] Floorplan- und CRUD-Module wurden für Patchpanels als Floor-Objekte inkl. Port-Pflege erweitert (`floor_patchpanels`, `floor_patchpanel_ports`). +- [x] Verbindungen zwischen Patchpanel ↔ Patchpanel und Patchpanel ↔ Netzwerkbuchse sind in der `connections`-Logik abbildbar. +- [ ] UI/CSV/Export-Dokumentation weiter ausbauen, damit Planer Kabelverläufe direkt auswerten können. --- diff --git a/init.sql b/init.sql index 4b0252b..fd77e2d 100644 --- a/init.sql +++ b/init.sql @@ -376,7 +376,10 @@ CREATE TABLE `floor_patchpanel_ports` ( `comment` text DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci; --- TODO: Port-Konfiguration (Patchpanel ↔ Patchpanel, Patchpanel ↔ Netzwerkbuchse) wird über die `connections`-Tabelle geregelt. +-- Port-Regeln fuer Patchpanel-Verbindungen: +-- 1) `connections.port_a_type` / `connections.port_b_type` nutzen den Wert `patchpanel` fuer IDs aus `floor_patchpanel_ports`. +-- 2) Patchpanel-Ports duerfen mit Patchpanel-Ports, Netzwerkbuchsen-Ports (`outlet`) oder Geraete-/Modulports verbunden werden. +-- 3) Die fachliche Validierung erfolgt in den Save-Handlern der Verbindungs-Module; das Schema bleibt polymorph. -- --------------------------------------------------------