Add Expiry Indicator functionality with configuration and command set
- 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.
This commit is contained in:
97
README.md
Normal file
97
README.md
Normal file
@@ -0,0 +1,97 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user