# PortalSettings V3 – Umsetzungsstand Stand: 21.07.2026 Branch: `dev-3.0` Zielversion: 3.0.0 ## Architektur - [x] Branch `dev-3.0` angelegt. - [x] Monolithische ASPX-Seite entfernt. - [x] Leeren Application Customizer entfernt. - [x] V3 als SPFx-WebPart aufgebaut. - [x] Provider-Vertrag, Registry und versionierte Schemas eingeführt. - [x] Provider-Erkennung von UI und Speicherlogik getrennt. - [x] Keine dynamische Ausführung fremder Provider-Scripts. - [x] Unbekannte Properties bleiben beim Speichern erhalten. ## Dynamische Oberfläche - [x] Sections mit Titel, Beschreibung und Layout. - [x] Überschriften, Text, Hinweise, Divider und Gruppen. - [x] Text-, Zahlen-, Boolean- und Auswahlfelder. - [x] Choice Cards für visuelle Modusauswahl. - [x] String-Listen- und JSON-Editoren. - [x] Termset-Picker. - [x] Bindungsinventar. - [x] Property-Zusammenfassung und einklappbare JSON-Vorschau. - [x] Bedingte Sichtbarkeit über `visibleWhen`. - [x] Responsive 12-Spalten-Darstellung. - [x] SharePoint-Themeslots statt fester Portal-Farben. - [x] Tastaturfokus, Forced Colors und Reduced Motion berücksichtigt. ## Provider - [x] MegaMenu vollständig auf Provider-Schema umgestellt. - [x] Termset, Modus, Cache, Cache-Version und Debug abgedeckt. - [x] CustomBranding vollständig auf Schema 2 abgebildet. - [x] Branding-Sicherheitsprüfung vor dem Speichern. - [x] ExpiryIndicator-Site-Collection-Standard abgebildet. - [x] Expiry-Bindungsinventar dargestellt. - [x] Web-, Listen- und Datumsfeld-Picker umgesetzt. - [x] Neue Field-Customizer-Bindung aus dem WebPart möglich. - [x] Lokale Expiry-Ausnahme bearbeiten. - [x] Bindung auf Site-Standard-Vererbung stellen. - [x] Legacy- und verschachtelte AND-/OR-Regeln validieren. ## Build und Bereinigung - [x] Versionen auf 3.0.0 angehoben. - [x] Node-Engine auf SPFx-1.4.1-Buildumgebung begrenzt. - [x] Alte Feature-, Upgrade-, Copy- und Azure-Assets entfernt. - [x] Altes Gulp-Copy-Task entfernt. - [x] Serve-Konfiguration auf WebPart Workbench umgestellt. - [x] Tests laufen vor der Paketierung. - [x] PnP-Provisionierungsskript für eine moderne V3-Seite ergänzt. - [x] README vollständig neu erstellt. ## Automatisierte Prüfungen - [x] Provider-Registry und alle drei Provider geprüft. - [x] Normalisierung und Erhalt unbekannter Properties geprüft. - [x] Legacy-Branding-Migration geprüft. - [x] Branding-XSS-Negativfälle geprüft. - [x] Expiry-Regel-Negativfälle geprüft. - [x] Objektpfade, Deep Clone und schemaerhaltendes Merge geprüft. - [x] Paket-, Manifest- und Bundle-Struktur geprüft. - [x] Verbot von `innerHTML` statisch geprüft. - [x] SharePoint-Themeslots statisch geprüft. ## Zielserver-Abnahme - [ ] Ship-Paket mit Node.js 8.17.0 erstellen. - [ ] App im Root Web aktualisieren. - [ ] Moderne `PortalSettingsV3.aspx` provisionieren. - [ ] MegaMenu-Termsets laden und speichern. - [ ] CustomBranding laden und schemaerhaltend speichern. - [ ] ExpiryIndicator-Standard speichern. - [ ] Expiry-Bindung hinzufügen, lokal konfigurieren und wieder auf Vererbung stellen. - [ ] Bedienung mit Tastatur, 200-Prozent-Zoom und Windows-Hochkontrast prüfen. - [ ] Alte V2-Seite nach erfolgreicher Parallelabnahme archivieren oder entfernen.