Add Portal Settings Web Part with styles, localization, and tests

- Implemented the PortalSettings Web Part with a new manifest and TypeScript file.
- Created SCSS styles for the Web Part, defining various UI elements and responsive design.
- Added localization support for English and German languages.
- Developed tests for Provider Registry and static assets validation.
- Included PowerShell script for project validation.
This commit is contained in:
Torsten Brendgen
2026-07-21 22:43:35 +02:00
parent 62fef65c12
commit 10f7463094
49 changed files with 2411 additions and 462 deletions

80
ToDo.md Normal file
View File

@@ -0,0 +1,80 @@
# 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.