Files
netwatch/doc/UI-KONZEPT.md
Troy Grunt 5066262fca feat: Implement initial application structure with network view and SVG editor
- Added network-view.js for visualizing network topology with devices and connections.
- Introduced svg-editor.js for managing ports on device types with drag-and-drop functionality.
- Created bootstrap.php for application initialization, including configuration and database connection.
- Established config.php for centralized configuration settings.
- Developed index.php as the main entry point with module-based routing.
- Integrated _sql.php for database abstraction.
- Added auth.php for single-user authentication handling.
- Included helpers.php for utility functions.
- Created modules for managing connections, device types, devices, and floors.
- Implemented database schema in init.sql for locations, buildings, floors, rooms, network outlets, devices, and connections.
- Added Docker support with docker-compose.yml for web and database services.
- Documented database structure and UI/UX concepts in respective markdown files.
2026-02-05 23:41:54 +01:00

224 lines
4.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UI-/UX-Konzept: SVG-Port-Editor
Der SVG-Port-Editor dient zur Definition von Ports auf Gerätetypen
(Switches, Patchpanels, Server, Module etc.).
Er ist ein **technischer Editor**, kein Grafiktool, und verfolgt folgende Ziele:
- präzise Port-Positionierung
- schnelle Bedienbarkeit
- Fehlertoleranz
- spätere Design-Erweiterbarkeit
---
## Zielgruppe
- Technische Administratoren
- Netzwerkplaner
- Dokumentationsverantwortliche
Keine Design-Kenntnisse notwendig.
---
## Grundidee
Der Editor arbeitet nach dem Prinzip:
> **Bild hochladen → Ports klicken → Ports konfigurieren**
Ports werden als **logische Punkte** auf einer Gerätegrafik definiert und
später in allen Ansichten (Rack, Netzwerk, Verbindungen) wiederverwendet.
---
## Seitenaufbau
### Layout (Desktop)
```
+------------------------------------------------------+
| Header: Gerätetyp bearbeiten |
+----------------------+-------------------------------+
| Sidebar (Ports) | Hauptbereich (SVG / Bild) |
| | |
| + Port hinzufügen | [ Gerätebild ] |
| | o o o o |
| Portliste | |
| - Port 1 | |
| - Port 2 | |
| - Port 3 | |
| | |
+----------------------+-------------------------------+
| Footer: Speichern / Abbrechen |
+------------------------------------------------------+
```
---
## Schritt 1: Gerätetyp anlegen
### Pflichtangaben
- Name
- Kategorie (Switch, Server, Patchpanel, Sonstiges)
- Bild (SVG oder PNG/JPG)
Nach dem Speichern wird automatisch der **Port-Editor** geöffnet.
---
## Schritt 2: Port-Editor Interaktion
### Port hinzufügen
**Interaktion**
- Klick auf das Bild
- An der Klickposition erscheint ein neuer Portpunkt
**Visuelle Darstellung**
- Kreis (Standard: grau)
- Nummer / Name daneben
---
### Port auswählen
- Klick auf bestehenden Port
- Port wird hervorgehoben
- Sidebar zeigt Port-Eigenschaften
---
### Port verschieben
- Drag & Drop
- Snap optional (Raster später erweiterbar)
- Position wird relativ zum Bild gespeichert
---
### Port löschen
- Button in Sidebar
- Sicherheitsabfrage
---
## Sidebar: Port-Eigenschaften
### Basisfelder
- Portname (z. B. `Gi1/0/1`, `Port 1`)
- Porttyp (Dropdown, frei definierbar)
- Kommentar (optional)
### Erweiterte Eigenschaften (optional)
- Standard-Geschwindigkeit
- Default-Modus
- Metadata (JSON, optional, für Sonderfälle)
---
## Visuelle Zustände von Ports
| Zustand | Darstellung |
|------------------|---------------------------------|
| Normal | Grauer Kreis |
| Hover | Hervorgehoben |
| Aktiv / selektiert | Farblich markiert |
| Fehlerhaft | Rot / Warnsymbol |
---
## Koordinatensystem
- Ports speichern **relative Koordinaten**
- Prozentual oder ViewBox-basiert
- Unabhängig von Bildauflösung
- Garantiert korrekte Skalierung:
- Rack-Ansicht
- Netzwerkansicht
- Zoom
---
## SVG vs. Bitmap
### SVG
- Ports werden als eigene SVG-Layer dargestellt
- Exakte Skalierung
- Ideal für professionelle Gerätebilder
### Bitmap (PNG/JPG)
- Ports als Overlay-Layer
- Relative Positionierung
- Einfacher Einstieg
Beide Varianten nutzen **identische Logik**.
---
## Validierungen
Beim Speichern wird geprüft:
- Portnamen eindeutig innerhalb des Gerätetyps
- Porttyp gesetzt
- Position innerhalb des Bildbereichs
Warnungen statt harter Fehler, wo sinnvoll.
---
## UX-Details
### Undo (optional, später)
- Letzte Aktion rückgängig machen
### Keyboard-Shortcuts (optional)
- `DEL`: Port löschen
- `ESC`: Auswahl aufheben
---
## Speichern
- Autosave optional
- Manuelles Speichern immer möglich
- Nach Speichern:
- Ports stehen für neue Geräte zur Verfügung
- Bestehende Geräte bleiben unverändert (keine Retro-Änderung)
---
## Abgrenzung: Gerät vs. Gerätetyp
Wichtiges UX-Prinzip:
- **Port-Editor arbeitet ausschließlich auf Gerätetypen**
- Konkrete Geräte:
- übernehmen die Portstruktur
- können Ports nicht verschieben
- nur konfigurieren (VLAN, Status etc.)
---
## Erweiterungen (nicht initial)
- Raster / Magnetlinien
- Port-Gruppierung (z. B. Portblöcke)
- Automatische Nummerierung
- Copy/Paste von Ports
- Zoom & Pan
- Touch-Unterstützung
---
## Zielzustand
Der SVG-Port-Editor soll:
- technisch korrekt
- schnell erlernbar
- präzise
- robust gegen Sonderfälle
sein ohne den Nutzer mit Design- oder Grafikdetails zu belasten.