diff --git a/UMSETZUNGSSTATUS.md b/UMSETZUNGSSTATUS.md new file mode 100644 index 00000000..139be164 --- /dev/null +++ b/UMSETZUNGSSTATUS.md @@ -0,0 +1,279 @@ +# Umsetzungsstatus Desktop UI + +Stand: 2026-06-07 + +Diese Datei ist die laufende Arbeitsgrundlage fuer die Umsetzung der Anweisungen aus `Umsetzungsanweisung/`. + +Statuslogik: + +- `ERLEDIGT`: in sinnvoller Form umgesetzt +- `TEILWEISE`: begonnen oder als Scaffold vorhanden, aber noch nicht fachlich fertig +- `OFFEN`: noch nicht umgesetzt + +## Gesamtstatus + +Aktuell ist das Projekt auf einem V1-Scaffold-Stand: + +- Desktop-Shell auf Root ist vorhanden +- Skin-System `Windows` / `Apple` / `Linux` ist vorbereitet +- einfacher Fenster-Manager ist vorhanden +- App-Registry, Widget-Registry und Import-Basis sind angelegt +- Keycloak ist nur konzeptionell vorbereitet, nicht integriert +- Admin-Bereiche, persistente User-Desktops und echte Modul-Anbindung sind noch offen + +## Verbindliche Regeln + +- `Old-Nexus/` und die Inhalte unter `Umsetzungsanweisung/Old-Nexus/` sind nur Referenz +- keine Includes, Imports, Asset-Pfade oder Laufzeitkopplung auf Altbestand +- klassische Module bleiben strukturell unter `modules//` +- die Desktop-Shell ist eine eigene Anwendungsschicht und kein Theme-Umbau des alten Systems + +## Status Nach Datei + +### 1. `START_HIER.md` + +Status: `TEILWEISE` + +Erfuellt: + +- neue Desktop-Oberflaeche wird im neuen Projekt aufgebaut +- Zielstruktur wurde angelegt: `public/`, `api/`, `src/`, `config/`, `partials/`, `modules/`, `tools/`, `debug/`, `temp/` +- temporaere Import-Basis liegt unter `temp/nexus-module-import/` +- keine technische Nutzung von `Old-Nexus/` im neuen Laufzeitcode + +Offen: + +- globale Verwaltungsseiten nur als Platzhalter vorhanden +- klassische Module sind noch nicht schrittweise an die Shell angebunden +- persoenliche Dashboards sind noch nicht funktional + +Nachweise: + +- [public/index.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/public/index.php:1) +- [temp/nexus-module-import/README.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/temp/nexus-module-import/README.md:1) +- [modules/README.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/modules/README.md:1) + +### 2. `01_ZIELBILD_DESKTOP_UI.md` + +Status: `TEILWEISE` + +Erfuellt: + +- Root `/` ist die Desktop-Oberflaeche +- Desktop-Flaeche, App-Icons, Fenster, Taskbar/Tray, Widget-Bereich und Skin-Konzept sind sichtbar vorhanden +- gemeinsame technische Basis fuer alle drei Skins ist umgesetzt +- funktionales Startmenue fuer Apps, Widgets und Quick Actions ist vorhanden + +Offen: + +- frei platzierbare Icons sind noch nicht umgesetzt +- persoenliche Startseite und oeffentliches Home sind noch nicht getrennt funktional +- eingebettete Webseiten, Links, externe Integrationen und Dashboard-Inhalte fehlen + +Nachweise: + +- [partials/desktop/shell.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/partials/desktop/shell.php:1) +- [public/assets/desktop/desktop.css](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/public/assets/desktop/desktop.css:1) +- [public/assets/desktop/desktop.js](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/public/assets/desktop/desktop.js:1) +- [config/widgets.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/config/widgets.php:1) + +### 3. `02_ORDNERSTRUKTUR_UND_GRUNDREGELN.md` + +Status: `TEILWEISE` + +Erfuellt: + +- Kernstruktur orientiert sich an Nexus +- `src/Desktop/` ist als globaler Desktop-Core vorhanden +- `public/assets/desktop/` und `partials/desktop/` sind angelegt +- Trennung zwischen globalem System, Desktop-UI und Modulen ist strukturell vorbereitet + +Offen: + +- `modules//` im neuen Projekt enthalten noch keine wirklich angebundenen Module +- `partials/landingpages/` und `partials/structure/` sind nur minimal vorbereitet +- `tools/` und `debug/` sind noch nicht mit Funktion befuellt + +Nachweise: + +- [src/Desktop/AppRegistry.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/src/Desktop/AppRegistry.php:1) +- [src/Desktop/SkinResolver.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/src/Desktop/SkinResolver.php:1) +- [src/Desktop/WindowManager.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/src/Desktop/WindowManager.php:1) +- [src/Desktop/WidgetRegistry.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/src/Desktop/WidgetRegistry.php:1) + +### 4. `03_MIGRATION_BESTEHENDE_MODULE.md` + +Status: `TEILWEISE` + +Erfuellt: + +- Rohkopie der Altmodule liegt in `temp/nexus-module-import/modules/` +- relevante Doku aus der Altbasis wurde in den Import-Ordner uebernommen +- Produktivcode referenziert den Import-Ordner nicht zur Laufzeit + +Offen: + +- keine Modulpruefung je Modul durchgefuehrt +- keine App-Registry-Eintraege fuer echte importierte Module vorhanden +- keine Modulansichten in die Fensterlogik integriert +- kein Skin-Test je Modul erfolgt + +Nachweise: + +- [temp/nexus-module-import](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/temp/nexus-module-import:1) +- [config/apps.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/config/apps.php:1) + +### 5. `04_UMSETZUNGSPLAN_V1.md` + +Status: `TEILWEISE` + +Phase 1 Fundament: + +- `ERLEDIGT`: Projektstruktur +- `ERLEDIGT`: Desktop-Shell als Root +- `ERLEDIGT`: Skin-Vorbereitung +- `TEILWEISE`: Keycloak-Anbindung nur konzeptionell + +Phase 2 Desktop-Grundfunktionen: + +- `ERLEDIGT`: Desktop-Hintergrund +- `ERLEDIGT`: App-Icons +- `OFFEN`: frei verschiebbare Icons +- `TEILWEISE`: Dock oder Taskbar +- `TEILWEISE`: Statusbereich +- `ERLEDIGT`: Uhr +- `ERLEDIGT`: erstes Hauptmenue mit Funktion + +Phase 3 Fenster-Manager: + +- `ERLEDIGT`: Fenster oeffnen und schliessen +- `ERLEDIGT`: Fenster fokussieren +- `ERLEDIGT`: Fenster minimieren +- `TEILWEISE`: Fenster maximieren +- `ERLEDIGT`: z-index-Verwaltung +- `OFFEN`: Position und Groesse merken + +Phase 4 Inhaltssystem: + +- `ERLEDIGT`: App Registry als Grundstruktur +- `ERLEDIGT`: Widget Registry als Grundstruktur +- `OFFEN`: Seitenmodule +- `OFFEN`: persoenliche Linklisten +- `TEILWEISE`: oeffentliches Home-Dashboard nur als Placeholder +- `TEILWEISE`: persoenliche Workspaces nur als Placeholder + +Phase 5 Admin-Bereiche: + +- `OFFEN`: globale Einstellungen +- `OFFEN`: Widget-Verwaltung +- `OFFEN`: Integrationen +- `OFFEN`: Suchmaschinen +- `TEILWEISE`: Apps nur als Placeholder-App +- `OFFEN`: oeffentliches Home-Dashboard-Verwaltung + +Phase 6 Modul-Anbindung: + +- `TEILWEISE`: importierte Nexus-Module liegen vor +- `OFFEN`: erste Module als Apps in der Shell +- `OFFEN`: Fenstertauglichkeit je Modul pruefen +- `OFFEN`: langfristige UX-Anpassung je Modul + +V1-Minimalziel: + +- `ERLEDIGT`: Root ist Desktop-Oberflaeche +- `OFFEN`: Login vorhanden +- `ERLEDIGT`: Desktop-Skins umschaltbar +- `ERLEDIGT`: Apps koennen als Fenster geoeffnet werden +- `OFFEN`: Admin kann global Apps, Widgets, Integrationen und Suchmaschinen verwalten +- `OFFEN`: mindestens ein persoenlicher Desktop pro Nutzer funktioniert +- `TEILWEISE`: oeffentliches Home-Dashboard nur als V1-Placeholder + +### 6. `05_KEYCLOAK_LOGIN_UND_DESKTOP_LOGIN.md` + +Status: `TEILWEISE` + +Erfuellt: + +- Desktop-Login ist als eigener App-Eintrag vorbereitet +- Theme-Handoff fuer Keycloak ist dokumentiert +- gestalterische Zielrichtung ist im Projekt festgehalten + +Offen: + +- keine echte Keycloak-Anbindung +- kein eigenes Keycloak-Theme implementiert +- keine Theme-Zuordnung zu Client oder Realm +- keine Login-UX in der laufenden Anwendung + +Nachweise: + +- [config/apps.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/config/apps.php:1) +- [docs/keycloak-theme-handoff.md](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/docs/keycloak-theme-handoff.md:1) +- [partials/landingpages/auth/login.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/partials/landingpages/auth/login.php:1) + +### 7. `06_STARTPROMPT_NEUE_SESSION.md` + +Status: `TEILWEISE` + +Erfuellt: + +- die dort genannte Erstaufgabe wurde im Scaffold-Sinn ausgefuehrt +- Shell zuerst gebaut, dann Import-Basis vorbereitet +- keine Vermischung mit alter Website-Navigation + +Offen: + +- Schritt 5 und 6 nur als Grundgeruest, nicht als voll funktionsfaehige Fachumsetzung + +## Technischer Ist-Stand + +Vorhanden: + +- Root-Entry fuer die Desktop-Shell +- JSON-Payload fuer Frontend per `api/desktop.php` +- PHP-Autoload-Basis +- App-Registry +- Widget-Registry +- Skin-Resolver +- Default-Workspace- und Widget-State +- einfacher Window-Manager +- CSS/JS fuer Shell, Fenster, Taskbar, Startmenue, Widgets und Uhr + +Hauptdateien: + +- [public/index.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/public/index.php:1) +- [api/desktop.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/api/desktop.php:1) +- [src/App/App.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/src/App/App.php:1) +- [src/Desktop/DesktopState.php](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/src/Desktop/DesktopState.php:1) +- [public/assets/desktop/desktop.js](/home/lars/Schreibtisch/Projekte/desktop.kusche.berlin/public/assets/desktop/desktop.js:1) + +## Offene Hauptpunkte + +### Prioritaet A + +- echtes Login mit Keycloak anbinden +- persoenlichen Desktop-Zustand pro Nutzer speichern +- Admin-App in echte Verwaltungsseiten zerlegen + +### Prioritaet B + +- frei verschiebbare Desktop-Icons +- Fensterposition und -groesse persistieren +- oeffentliches Home-Dashboard in echte Inhalte ueberfuehren +- persoenliche Linklisten und Workspaces funktional bauen + +### Prioritaet C + +- erstes importiertes Modul fachlich sichten +- Modul als App registrieren +- Modulansicht in Fenster oeffnen +- Skin- und Fensterverhalten fuer dieses Modul testen + +## Arbeitsmodus Fuer Diese Datei + +Wenn wir weitere Aufgaben umsetzen, wird diese Datei jeweils aktualisiert: + +- Status pro Anweisungsdatei anpassen +- erledigte Punkte von `OFFEN` auf `TEILWEISE` oder `ERLEDIGT` setzen +- neue Nachweise auf konkrete Dateien verlinken +- offene Punkte nur dann als `ERLEDIGT` markieren, wenn sie fachlich funktionieren und nicht nur als Placeholder existieren diff --git a/config/widgets.php b/config/widgets.php new file mode 100644 index 00000000..93f25507 --- /dev/null +++ b/config/widgets.php @@ -0,0 +1,46 @@ + 'public-home', + 'title' => 'Public Home', + 'icon' => 'PH', + 'zone' => 'sidebar', + 'default_enabled' => true, + 'supports_public_home' => true, + 'summary' => 'Oeffentliches Dashboard fuer nicht eingeloggte Nutzer mit Startinhalten und Systemhinweisen.', + 'content' => 'Die erste Ausbaustufe des oeffentlichen Desktops zeigt ein kuratiertes Home-Dashboard mit Kerninhalten und Einstiegspunkten.', + ], + [ + 'widget_id' => 'personal-links', + 'title' => 'Persoenliche Links', + 'icon' => 'PL', + 'zone' => 'sidebar', + 'default_enabled' => true, + 'supports_public_home' => false, + 'summary' => 'Reserviert fuer spaetere nutzerspezifische Schnellzugriffe und Favoriten.', + 'content' => 'Hier entstehen spaeter persoenliche Linklisten, Shortcuts und Favoriten pro Workspace.', + ], + [ + 'widget_id' => 'system-status', + 'title' => 'Systemstatus', + 'icon' => 'SS', + 'zone' => 'sidebar', + 'default_enabled' => true, + 'supports_public_home' => true, + 'summary' => 'Zeigt Desktop-Skin, Shell-Status und den aktuellen Ausbaugrad.', + 'content' => 'Shell, Fenster-Manager und Registry laufen bereits. Login und Fachmodule folgen spaeter.', + ], + [ + 'widget_id' => 'workspace-notes', + 'title' => 'Workspace Notes', + 'icon' => 'WN', + 'zone' => 'sidebar', + 'default_enabled' => false, + 'supports_public_home' => false, + 'summary' => 'Platz fuer persoenliche Hinweise und Notizen je Workspace.', + 'content' => 'Dieses Widget ist vorbereitet, aber standardmaessig noch nicht eingeblendet.', + ], +]; diff --git a/partials/desktop/shell.php b/partials/desktop/shell.php index 2a75b9b3..3d2cac0d 100644 --- a/partials/desktop/shell.php +++ b/partials/desktop/shell.php @@ -53,17 +53,42 @@ $wallpaper = $desktopPayload['desktop']['wallpaper'];
-
- +
+
-

-

+
+
+

+

+
+ +
+

+ +