todos check

This commit is contained in:
2026-02-18 09:05:16 +01:00
parent 4a23713d31
commit 463ab97c4b

293
TODO.md
View File

@@ -1,258 +1,39 @@
# TODO # TODO
Zentrale Sammlung aller TODO-Markierungen im Repository (Stand: 13. Februar 2026). Bereinigte und aktuelle TODO-Liste (Stand: 18. Februar 2026).
Quelle: vorhandene `TODO`-Marker im Repository plus offene Architekturpunkte.
Hinweis: Die Eintraege sind direkt aus den Quelldateien aggregiert.
## Erledigt (bereits umgesetzt)
## Arbeitsnotizen (16. Februar 2026)
- [x] API-Basis umgesetzt (`app/api/connections.php`, `app/api/device_type_ports.php`, `app/api/upload.php`).
- [x] API-Basis umgesetzt: `app/api/connections.php`, `app/api/device_type_ports.php`, `app/api/upload.php` auf aktuelles Schema gebracht (Auth, Validierung, Existenzpruefungen, Fehlerantworten). - [x] Bootstrap/Auth/Config/Routing-Grundlagen umgesetzt (`app/config.php`, `app/bootstrap.php`, `app/lib/_sql.php`, `app/lib/auth.php`, `app/index.php`).
- [x] Bootstrap/Auth/Config/Routing umgesetzt: `app/config.php`, `app/bootstrap.php`, `app/lib/_sql.php`, `app/lib/auth.php`, `app/index.php`. - [x] Frontend-Grundlagen aktualisiert (`app/assets/js/app.js`, `app/assets/js/dashboard.js`, `app/assets/js/svg-editor.js`, `app/assets/js/network-view.js`).
- [x] Frontend-Grundlagen aktualisiert: `app/assets/js/app.js`, `app/assets/js/dashboard.js`, `app/assets/js/svg-editor.js`, `app/assets/js/network-view.js`. - [x] Delete-Flow fuer zentrale Module umgesetzt (`buildings`, `floors`, `racks`, `device_types`, `floor_infrastructure`).
- [x] Delete-Flow fuer zentrale Module umgesetzt: `buildings`, `floors`, `racks`, `device_types`, `floor_infrastructure`. - [x] Legacy-Mock in `app/modules/device_types/ports.php` ersetzt.
- [x] Legacy-Mock ersetzt: `app/modules/device_types/ports.php` lauffaehig gemacht (anzeigen, hinzufuegen, loeschen). - [x] Veraltete Sammel-TODO-Liste (nicht mehr im Code vorhanden) entfernt.
- [x] TODO-Reste in `header.php`, `footer.php`, `layout.php`, `floor_infrastructure/edit.php` entfernt.
## Offen (direkt im Code markiert)
Offene Blocker / naechste Punkte:
- [ ] `app/modules/connections/list.php`: Detailbereich fuer ausgewaehlte Verbindung sowie Bearbeiten/Loeschen im UI fehlen noch. - [ ] `app/modules/dashboard/list.php:11`:
- [ ] `app/modules/dashboard/list.php`: grosse zoombare Gesamt-Topologie-Wand (fachlich/grafisch groesseres Feature). Grosse zoombare/verschiebbare SVG-Wand mit Punkten + Overlay-Drilldown (z. B. Rack-Ansicht).
- [ ] `app/lib/helpers.php`: generischer Sammel-TODO ohne konkreten Scope. - [ ] `app/modules/connections/list.php:387`:
- [ ] Vollstaendiger End-to-End-Test aktuell nicht moeglich, da in dieser Shell kein `php` CLI verfuegbar ist. Verbindung im UI bearbeiten/loeschen.
- [ ] `app/lib/helpers.php:300`:
## app\api\connections.php Generischer Platzhalter fuer weitere Helper (nur bei konkretem Bedarf ergaenzen).
- [ ] L15: // TODO: Single-User-Auth prüfen ## Offen (Bugs / Doku / Statusdateien)
- [ ] L61: // TODO: Kontext definieren (Standort, Rack, Floor, gesamtes Netz)
- [ ] L117: // TODO: Validierung - [ ] `BUGS.md:3`: Design vereinheitlichen.
- [ ] L182: // TODO: Prüfen, ob Verbindung existiert - [ ] `IMPLEMENTATION_STATUS.md:80`: Delete-Funktionen-Status aktualisieren.
- [ ] `IMPLEMENTATION_STATUS.md:109`: Auth-Status aktualisieren.
## app\api\device_type_ports.php - [ ] `README.md:241`: Patchpanel-Infrastruktur umsetzen und danach Doku abhaken.
- [ ] `README.md:253`: SVG-Editor fuer Floor-Infrastruktur (Drag-and-Drop + direkte Modul-Interaktion).
- [ ] L15: // TODO: Single-User-Auth prüfen - [ ] `doc/DATABASE.md:127`: TODO-Abschnitt fuer Patchpanel/Floorplan finalisieren.
- [ ] L96: // TODO: Transaktion starten (falls SQL-Klasse das unterstützt) - [ ] `init.sql:379`: Kommentar zur Port-Konfiguration in verbindliche Implementierungsregeln ueberfuehren.
- [ ] L100: // TODO: Validierung:
- [ ] L163: // TODO: Prüfen, ob Port existiert und nicht verwendet wird ## Topologie-Backlog (ausstehend)
## app\api\upload.php - [ ] `connections.port_a_type` / `connections.port_b_type` um `patchpanel` erweitern und auf `floor_patchpanel_ports.id` referenzieren.
- [ ] Validierungsregeln fuer Topologie fest verdrahten (Patchpanel-Port nur mit Patchpanel-Port oder Netzwerkbuchsen-Port).
- [ ] L18: // TODO: Single-User-Auth prüfen - [ ] Port-CRUD fuer Patchpanels: `floor_patchpanel_ports` aus `port_count` erzeugen/synchronisieren.
- [ ] L25: // TODO: Upload-Basisverzeichnis aus config.php - [ ] Port-CRUD fuer Netzwerkbuchsen: `network_outlet_ports` pflegen (mindestens ein Port je Buchse) und in Verbindungen nutzbar machen.
- [ ] L35: // TODO: Max. Dateigröße festlegen (z.B. 5MB)
- [ ] L77: // TODO: Kategorie definieren (device_types, floors, racks, etc.)
- [ ] L95: // TODO: Eindeutigen Namen besser definieren (UUID?)
- [ ] L114: // TODO: Optional in Tabelle `uploads` speichern
## app\assets\js\app.js
- [ ] L15: deviceTypes: [], // TODO: alle Gerätetypen laden
- [ ] L16: devices: [], // TODO: alle Geräte laden
- [ ] L17: racks: [], // TODO: alle Racks laden
- [ ] L18: floors: [], // TODO: alle Floors laden
- [ ] L19: connections: [], // TODO: alle Verbindungen laden
- [ ] L33: // TODO: import / init svg-editor.js
- [ ] L39: // TODO: import / init network-view.js
- [ ] L45: // TODO: init drag & drop logic
- [ ] L59: // TODO: Save-Button Device-Type
- [ ] L64: // TODO: Save Device-Type via AJAX
- [ ] L68: // TODO: Save-Button Device
- [ ] L73: // TODO: Save Device via AJAX
- [ ] L77: // TODO: Save-Button Floor
- [ ] L82: // TODO: Save Floor via AJAX
- [ ] L86: // TODO: Save-Button Rack
- [ ] L91: // TODO: Save Rack via AJAX
- [ ] L95: // TODO: Weitere Event-Handler (Import, Export, Filter)
- [ ] L132: // TODO: weitere Utility-Funktionen (DOM-Helper, SVG-Helper, etc.)
## app\assets\js\dashboard.js
- [ ] L75: // TODO: Dashboard-Container ermitteln
- [ ] L78: // TODO: Module rendern
- [ ] L81: // TODO: Optional: Status-Daten laden (Counts, Warnings)
- [ ] L117: // TODO: loadStats() → Anzahl Geräte, offene Ports, unverbundene Dosen
- [ ] L118: // TODO: showWarnings() → unverbundene Ports, VLAN-Konflikte
- [ ] L119: // TODO: RecentChanges() → letzte Änderungen
## app\assets\js\network-view.js
- [ ] L20: // TODO: Standort / Rack / View-Kontext vom Backend setzen
- [ ] L23: // TODO: API-Endpunkte definieren
- [ ] L79: // TODO: Datenstruktur validieren
- [ ] L123: // TODO: Gerätetyp (SVG oder JPG) korrekt laden
- [ ] L144: // TODO: Ports als kleine Kreise anlegen (Position aus Portdefinition)
- [ ] L145: // TODO: Ports klickbar machen (für Verbindungs-Erstellung)
- [ ] L157: // TODO: Quell- & Ziel-Port-Koordinaten berechnen
- [ ] L158: // TODO: unterschiedliche Verbindungstypen (Farbe, Strichart, Dicke)
- [ ] L217: // TODO: Positionen optional automatisch speichern
- [ ] L232: // TODO: Sidebar mit Gerätedetails füllen
- [ ] L254: // TODO: Erfolg / Fehler anzeigen
- [ ] L289: // TODO: Delete -> Gerät entfernen?
## app\assets\js\svg-editor.js
- [ ] L20: // TODO: vom Backend setzen (z. B. via data-Attribut)
- [ ] L23: // TODO: API-Endpunkte festlegen
- [ ] L74: // TODO: Modifier-Key prüfen (z. B. nur mit SHIFT neuen Port erstellen?)
- [ ] L86: port_type_id: null, // TODO: Default-Porttyp?
- [ ] L134: // TODO: Sidebar-Felder mit Portdaten füllen
- [ ] L178: // TODO: Sicherheitsabfrage (confirm)
- [ ] L184: // TODO: Sidebar zurücksetzen
- [ ] L200: // TODO: Datenformat validieren
- [ ] L222: // TODO: Erfolg / Fehler anzeigen
## app\bootstrap.php
- [ ] L16: // TODO: Config-Datei mit DB-Zugang, Pfaden, globalen Settings füllen
- [ ] L22: // TODO: Single-User Auth prüfen
- [ ] L30: // TODO: Host, User, Passwort, DB aus config.php nutzen
## app\index.php
- [ ] L19: // TODO: Session starten / Single-User-Auth prüfen
- [ ] L37: // TODO: Fehlerseite anzeigen, nutze renderClientError(...)
- [ ] L42: // TODO: Fehlerseite anzeigen, nutze renderClientError(...)
- [ ] L61: // TODO: Fehlerseite oder 404, nutze renderClientError(...)
## app\lib\auth.php
- [ ] L24: // TODO: Session-Variable definieren, z.B. $_SESSION['auth'] === true
- [ ] L40: // TODO: Passwort aus config.php vergleichen
- [ ] L41: // TODO: Passwort-Hash verwenden (password_hash / password_verify)
- [ ] L62: // TODO: Session-Variablen löschen
- [ ] L65: // TODO: Optional komplette Session zerstören
- [ ] L79: // TODO: Redirect auf Login-Seite
## app\lib\helpers.php
- [ ] L300: // TODO: Weitere Helfer nach Bedarf
## app\modules\buildings\edit.php
- [ ] L176: // TODO: AJAX-Delete implementieren
## app\modules\buildings\list.php
- [ ] L245: // TODO: AJAX-Delete implementieren
## app\modules\connections\list.php
- [ ] L198: <!-- TODO: Details zum ausgewählten Gerät anzeigen -->
- [ ] L207: <!-- TODO: Verbindung bearbeiten / löschen -->
## app\modules\device_types\edit.php
- [ ] L18: //TODO port hinzufügen geht nicht
- [ ] L378: // TODO: AJAX-Delete implementieren
## app\modules\device_types\list.php
- [ ] L252: // TODO: AJAX-Delete implementieren
## app\modules\device_types\ports.php
- [ ] L12: // TODO: bootstrap laden
- [ ] L15: // TODO: Auth erzwingen
- [ ] L22: // TODO: device_type_id aus GET lesen
- [ ] L25: // TODO: Gerätetyp laden
- [ ] L28: // TODO: Ports dieses Gerätetyps laden
- [ ] L43: <!-- TODO: Gerätetyp-Name -->
- [ ] L59: <!-- TODO: Port-Typen verwalten -->
- [ ] L60: <!-- TODO: Import / Export -->
- [ ] L109: <!-- TODO: Port-Nummer -->
- [ ] L113: <!-- TODO: Port-Name -->
- [ ] L117: <!-- TODO: Port-Typ (RJ45, SFP, ...) -->
- [ ] L120: <!-- TODO: Medium (Kupfer, LWL, BNC, Custom) -->
- [ ] L123: <!-- TODO: Modus (Access, Trunk, Custom) -->
- [ ] L126: <!-- TODO: VLANs -->
- [ ] L161: <!-- TODO: SVG des Gerätetyps laden -->
- [ ] L262: * TODO: Replace this mock logic with real AJAX once ports are
## app\modules\devices\list.php
- [ ] L206: //TODO löschen geht nicht
## app\modules\floor_infrastructure\edit.php
- [ ] L277: //TODO drag an drop auf der stockwerkskarte für die patchfelder und wandbuchsen. buchsen haben eine einheitliche größe, und sind quadratisch, patchfelder sind auch für sich einheitlich, sind rechteckig und breiter als hoch
- [ ] L278: //TODO style in css files einsortieren
## app\modules\floor_infrastructure\list.php
- [ ] L143: <p><small>//TODO: SVG-Editor mit Drag & Drop für diese Objekte erweitern (siehe Stockwerke-Modul).</small></p>
## app\modules\floors\list.php
- [ ] L237: // TODO: AJAX-Delete implementieren
## app\modules\locations\edit.php
- [ ] L157: // TODO: AJAX-Delete implementieren
## app\modules\locations\list.php
- [ ] L134: //TODO design schlecht, mach es hübscher
- [ ] L208: //TODO style in css file
## app\modules\racks\edit.php
- [ ] L201: // TODO: AJAX-Delete implementieren
- [ ] L221: <!-- TODO: Rack-SVG laden -->
- [ ] L237: <!-- TODO: Löschen, falls edit -->
- [ ] L251: // TODO: Rack-ID aus PHP setzen
- [ ] L254: // TODO: Gerätepositionen an JS übergeben
## app\modules\racks\list.php
- [ ] L255: // TODO: AJAX-Delete implementieren
## app\templates\footer.php
- [ ] L14: <!-- TODO: Optional: Statusanzeige, Debug-Info, Session-Hinweis -->
- [ ] L17: <!-- TODO: evtl. JS für modale Fenster oder Flash Messages -->
## app\templates\header.php
- [ ] L24: <!-- TODO: Meta-Tags, Favicon -->
## app\templates\layout.php
- [ ] L11: * TODO: In Zukunft: zentrales Template-System (z.B. mit $content)
- [ ] L18: <!-- TODO: Dynamischen Content hier einfügen -->
## BUGS.md
- [ ] L3: - [ ] TODO Design vereinheitlichen
## doc\DATABASE.md
- [ ] L126: **TODO**
## IMPLEMENTATION_STATUS.md
- [ ] L80: - [ ] **Delete-Funktionen** - Löschen noch als TODO (als AJAX implementieren)
- [ ] L109: │ └── auth.php 🚧 TODO: Auth
## init.sql
- [ ] L372: -- TODO: Port-Konfiguration (Patchpanel ↔ Patchpanel, Patchpanel ↔ Netzwerkbuchse) wird über die `connections`-Tabelle geregelt.
## NEXT_STEPS.md
- [ ] L74: ## 🔧 Bekannte TODOs im Code
- [ ] L76: Alle noch offenen Punkte sind mit `// TODO:` gekennzeichnet:
- [ ] L79: # Alle TODOs finden:
- [ ] L80: grep -r "TODO:" app/modules/ --include="*.php"
- [ ] L83: Wichtigste TODOs:
## README.md
- [ ] L241: ### TODO: Patchpanel-Infrastruktur
- [ ] L253: - TODO: SVG-Editor um Drag & Drop für diese Objekte erweitern und Klicks direkt mit dem Modul verbinden.
- [ ] //TODO infrastruktur patchfelder löschen soll implementiert werden.
## Topologie-Abgleich (16. Februar 2026)
- [ ] #TODO: `connections.port_a_type` und `connections.port_b_type` um einen Patchpanel-Port-Typ erweitern (z. B. `patchpanel`) und auf `floor_patchpanel_ports.id` referenzieren.
- [ ] #TODO: Business-Regeln fuer Topologie in der Verbindungs-Validierung hinterlegen: Patchpanel-Port nur mit Patchpanel-Port oder Netzwerkbuchsen-Port verbinden.
- [ ] #TODO: Port-CRUD fuer Patchpanels ergaenzen: `floor_patchpanel_ports` beim Speichern aus `port_count` erzeugen/synchronisieren.
- [ ] #TODO: Port-CRUD fuer Netzwerkbuchsen ergaenzen: `network_outlet_ports` pflegen (mindestens ein Port je Buchse) und fuer Verbindungen nutzbar machen.