# ExpiryIndicator SPFx-1.4.1-Solution für moderne Listen und Dokumentbibliotheken in SharePoint Server Subscription Edition. ## Funktionen - Farbliche Anzeige einer vorhandenen, frei wählbaren Ablaufdatumsspalte. - Fallback-Berechnung aus einem konfigurierbaren Erstellungsfeld und `defaultLifetime`. - Priorisierte Regeln mit eigener Laufzeit und eigenen Farbschwellen anhand vorhandener Feldwerte. - Command-Bar-Befehl zum Verlängern eines oder mehrerer Elemente um ein Kalenderjahr. - Pro Liste/Bibliothek gespeicherte Konfiguration. Die Solution provisioniert ausdrücklich keine fachliche Ablaufdatumsspalte und keinen Content Type. ## Regelauswertung `rules` werden von oben nach unten geprüft. Für jede Regel gilt: 1. Das konfigurierte interne Feld muss in der Liste/Bibliothek existieren. 2. Erst dann wird sein Wert geprüft. 3. Die erste Regel mit passendem `columnValue` bestimmt `lifeTime` und `columnRule`. 4. Wenn keine Regel passt oder keines der Regelfelder vorhanden ist, gilt der gesamte `default`-Block. Beispiel: ```json { "baseField": "Created", "expiryField": "ExpiryDate", "default": { "lifeTime": { "value": 2, "unit": "years" }, "columnRule": [ { "daysUntilExpiry": 0, "operator": "lessOrEqual", "backgroundColor": "#a4262c", "textColor": "#ffffff", "label": "Abgelaufen" } ] }, "rules": [ { "columnName": "DataPrivacy", "columnValue": "PersDat1", "lifeTime": { "value": 1, "unit": "years" }, "columnRule": [ { "daysUntilExpiry": 30, "operator": "lessOrEqual", "backgroundColor": "#ffaa44", "textColor": "#000000", "label": "Läuft bald ab" } ] } ] } ``` ## Build SPFx 1.4.1 verwendet die Legacy-Toolchain. Unterstützt wird Node.js 6 oder 8; empfohlen wird für reproduzierbare Builds Node.js 8.17.0. ```powershell npm install npm run package ``` Das Paket wird als `sharepoint/solution/expiry-indicator.sppkg` erzeugt. ## Installation 1. `expiry-indicator.sppkg` in den App Catalog der On-Premises-Farm laden. 2. Die App in der gewünschten Site installieren. 3. Eine moderne Liste/Bibliothek öffnen und über **Expiry-Einstellungen** interne Feldnamen, Standardlaufzeit, Policies und Farben konfigurieren. 4. Den Field Customizer mit der vorhandenen Ablaufdatumsspalte verbinden: ```powershell .\scripts\Enable-ExpiryIndicator.ps1 ` -SiteUrl 'https://sharepoint/sites/fachbereich' ` -ListTitle 'Dokumente' ` -ExpiryFieldInternalName 'CustomerExpiryDate' ``` Das Skript ist in einer SharePoint Management Shell beziehungsweise auf einem Rechner mit den passenden SharePoint-CSOM-Assemblies und Zugriff auf die Site auszuführen. ## Deaktivierung ```powershell .\scripts\Disable-ExpiryIndicator.ps1 ` -SiteUrl 'https://sharepoint/sites/fachbereich' ` -ListTitle 'Dokumente' ` -ExpiryFieldInternalName 'CustomerExpiryDate' ``` Das Skript entfernt ausschließlich die Field-Customizer-Verknüpfung. Die Spalte und alle fachlichen Daten bleiben erhalten. Die Command-Set-Registrierung wird durch das Entfernen der App aus der Site beseitigt.