2026-04-13 10:22:03 +02:00
2026-04-13 10:22:03 +02:00
2026-04-13 10:22:03 +02:00

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

Fuer Mega Menu wird das Termset ueber einen durchsuchbaren Picker aus dem Default Site Collection Term Store ausgewaehlt. PortalSettings speichert Termset-ID, Namen, Cache-Dauer und Debug-Modus einmal zentral im Property Bag des Root Webs. Beim Speichern werden identische Runtime-Bindungen rekursiv auf das Root Web und alle vorhandenen Unterwebs synchronisiert. Individuelle Stylesheets werden ausschliesslich ueber Custom Branding eingebunden.

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 wird anhand seiner aktiven Application-Customizer-UserCustomAction erkannt.
  • Mega Menu wird anhand seiner zentralen Root-Web-Konfiguration oder einer aktiven Runtime-Bindung erkannt.
  • ExpiryIndicator registriert einen Solution-Descriptor und sein Bindungsinventar im Property Bag des Root Webs.

Custom Branding kann beim Speichern auf eine site-scoped UserCustomAction angehoben werden. Mega Menu verwendet wegen der On-Premises-Loader-Eigenheiten bewusst web-scoped Runtime-Bindungen. Die fachliche Konfiguration bleibt dennoch einmalig und zentral: PortalSettings speichert sie im Root Web und verteilt sie auf alle vorhandenen Webs. Fuer spaeter neu angelegte Unterwebs wird die Konfiguration einfach erneut gespeichert, wodurch die Synchronisierung idempotent nachgezogen wird.

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:

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.2.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. /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.

Description
No description provided
Readme 2.8 MiB
v.2.0.0 Latest
2026-07-19 21:58:40 +00:00
Languages
ASP.NET 99%
TypeScript 0.5%
JavaScript 0.5%