# 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, - Popup zum Anbinden vorhandener Datumsfelder ohne PowerShell, - 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.1.5.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. `/SitePages/PortalSettings.aspx` mit geleertem Browsercache laden. 5. **ExpiryIndicator anbinden** auswaehlen und Web-URL, Listentitel und internen Namen des vorhandenen Datumsfeldes eingeben. Optional werden Classic ScriptLink und Ribbon-Befehl mitregistriert. Das PowerShell-Skript bleibt fuer automatisierte Rollouts und Massenbereitstellungen erhalten, ist fuer eine manuelle Bindung ueber PortalSettings aber nicht mehr erforderlich. Der ExpiryIndicator-Tab erscheint erst, wenn mindestens eine Bindung registriert ist, ein zentraler Standard existiert oder der Solution-Descriptor im Root Web vorhanden ist. Zum Anbinden werden mindestens die Berechtigungen **Listen verwalten** und zum Registrieren der optionalen Classic-Webaktion **Web verwalten** benoetigt. Die ExpiryIndicator-App muss zuvor im Root Web installiert sein.