- Implemented ExpiryItemService to manage expiry date logic for list items. - Created ExpiryModels to define types and structures for expiry configurations and rules. - Added RestError utility for handling API response errors. - Developed ExpiryIndicatorFieldCustomizer to display expiry information in list views. - Introduced ExpiryIndicatorCommandSet for extending expiry dates and managing settings. - Added settings dialog for configuring expiry settings. - Implemented localization support for English and German languages. - Added TypeScript configuration files for project setup. - Included TSLint configuration for code quality enforcement.
3.1 KiB
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:
- Das konfigurierte interne Feld muss in der Liste/Bibliothek existieren.
- Erst dann wird sein Wert geprüft.
- Die erste Regel mit passendem
columnValuebestimmtlifeTimeundcolumnRule. - Wenn keine Regel passt oder keines der Regelfelder vorhanden ist, gilt der gesamte
default-Block.
Beispiel:
{
"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.
npm install
npm run package
Das Paket wird als sharepoint/solution/expiry-indicator.sppkg erzeugt.
Installation
expiry-indicator.sppkgin den App Catalog der On-Premises-Farm laden.- Die App in der gewünschten Site installieren.
- Eine moderne Liste/Bibliothek öffnen und über Expiry-Einstellungen interne Feldnamen, Standardlaufzeit, Policies und Farben konfigurieren.
- Den Field Customizer mit der vorhandenen Ablaufdatumsspalte verbinden:
.\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
.\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.