# PortalSettings PortalSettings wird einmal im Root Web einer Site Collection installiert. Die Seite erkennt registrierte Einstellungsanbieter automatisch und zeigt nur Tabs fuer tatsaechlich vorhandene Solutions. Aktuell verwaltet sie: - Custom Branding - Mega Menu - ExpiryIndicator ## ExpiryIndicator 2.1 - Site-Collection-Standard im Property Bag des Root Webs, - Inventar aller durch das Aktivierungsskript registrierten Bindungen in Root Web und Subwebs, - Vererbung des zentralen Standards durch alle Bindungen, - weiterhin moegliche lokale Ausnahmen in `ClientSideComponentProperties` des gebundenen Feldes, - keine zusaetzliche Konfigurationsliste, - Unterstuetzung alter Einzelregeln und verschachtelter V2-Regeln mit `and`/`or`, - Validierung und Formatierung der vollstaendigen JSON-Konfiguration vor dem Speichern. Die Prioritaet lautet: lokale Feldausnahme, Subweb-Override, Site-Collection-Standard, eingebauter Standard. PortalSettings bleibt fuer den Betrieb des ExpiryIndicators optional. ## Erkennung - Custom Branding und Mega Menu werden anhand ihrer aktiven, markierten Application-Customizer-UserCustomAction erkannt. - ExpiryIndicator registriert einen Solution-Descriptor und sein Bindungsinventar im Property Bag des Root Webs. Neue eigene Solutions werden zentral im Provider-Register in `PortalSettings.aspx` hinterlegt. Ein Provider definiert Kennung, Anzeigename, Component-ID, Panel und Erkennungsart. So bleibt PortalSettings die gemeinsame Admin-Oberflaeche, ohne dass nicht installierte Solutions leere Tabs erzeugen. ## Build Die Solution verwendet die SPFx-1.4.1-Toolchain und wird reproduzierbar mit Node.js 8.17.0 gebaut: ```powershell npm install npm run package ``` Das Paket liegt danach unter `sharepoint/solution/portal-settings.sppkg`. ## Installation und Upgrade 1. `portal-settings.sppkg` im App Catalog durch Version `2.0.0.0` ersetzen. 2. PortalSettings im Root Web der Site Collection installieren beziehungsweise aktualisieren. 3. `expiry-indicator.sppkg` durch Version `2.1.0.0` ersetzen und die App aktualisieren. 4. `Enable-ExpiryIndicator.ps1` fuer jede verwendete Liste oder Bibliothek erneut ausfuehren. Dadurch werden Descriptor und Bindungsinventar idempotent registriert; vorhandene lokale Konfigurationen bleiben erhalten. 5. `/SitePages/PortalSettings.aspx` mit geleertem Browsercache laden. Der ExpiryIndicator-Tab erscheint erst, wenn mindestens eine Bindung registriert ist, ein zentraler Standard existiert oder der Solution-Descriptor im Root Web vorhanden ist.