feat: add ExpiryIndicatorClassic functionality with configuration and rendering

- Implemented ExpiryIndicatorClassic.js for managing expiry dates in SharePoint lists.
- Created classic-elements.xml to define the module for ExpiryIndicator assets.
- Added upgrade-actions-v2.xml to apply the new element manifests.
- Introduced ExpiryModels.test.ts for unit testing the expiry configuration and rules validation.
This commit is contained in:
Torsten Brendgen
2026-07-18 19:52:50 +02:00
parent f6e3af23c2
commit 0d6768e24c
18 changed files with 18610 additions and 45 deletions

37
ToDo.md
View File

@@ -122,25 +122,34 @@ Beispiel einer Laufzeitkonfiguration:
### Logische Verkettung von Regeln
- [ ] Konfigurationsschema für mehrere Bedingungen innerhalb einer Regel definieren.
- [ ] Bedingungen mit den logischen Operatoren `AND` und `OR` verknüpfen können.
- [ ] Verschachtelte Bedingungsgruppen und eine eindeutige Auswertungsreihenfolge festlegen.
- [ ] Regel-Engine um die Auswertung verketteter Bedingungen erweitern.
- [ ] Bestehende Version-1-Regeln mit `columnName` und `columnValue` abwärtskompatibel weiter unterstützen.
- [ ] Einstellungsdialog und die optionale PortalSettings-Integration um verkettete Regeln erweitern.
- [ ] Konfiguration validieren und verständliche Fehlermeldungen für ungültige Regelgruppen ausgeben.
- [ ] Tests für `AND`, `OR`, gemischte Gruppen, fehlende Felder und Fallback auf die Standardregel ergänzen.
- [x] Konfigurationsschema für mehrere Bedingungen innerhalb einer Regel definieren.
- [x] Bedingungen mit den logischen Operatoren `AND` und `OR` verknüpfen können.
- [x] Verschachtelte Bedingungsgruppen und eine eindeutige Auswertungsreihenfolge festlegen.
- [x] Regel-Engine um die Auswertung verketteter Bedingungen erweitern.
- [x] Bestehende Version-1-Regeln mit `columnName` und `columnValue` abwärtskompatibel weiter unterstützen.
- [x] Einstellungsdialog um verkettete Regeln erweitern.
- [x] Optionale PortalSettings-Integration um einen zentralen Editor für verkettete Regeln erweitern.
- [x] Konfiguration validieren und verständliche Fehlermeldungen für ungültige Regelgruppen ausgeben.
- [x] Tests für `AND`, `OR`, gemischte Gruppen, fehlende Felder und Fallback auf die Standardregel ergänzen.
### Unterstützung klassischer SharePoint-Ansichten
- [ ] Technisches Konzept für klassische Listen und Bibliotheken erstellen, da SPFx Field Customizer und ListView Command Sets dort nicht ausgeführt werden.
- [ ] Darstellung und Zeilenverlauf für die klassische Ansicht über eine geeignete Classic-Integration, beispielsweise CSR/JSLink, realisieren.
- [ ] Die Aktion **„Ablaufdatum +1 Jahr“** in der klassischen Ribbon-/Listenoberfläche bereitstellen.
- [ ] Zugriff auf die ExpiryIndicator-Einstellungen auch aus klassischen Ansichten ermöglichen.
- [ ] Aktivierungs-, Deaktivierungs- und Upgrade-Skripte um die Classic-Registrierungen erweitern.
- [ ] Dieselbe Konfiguration und Regel-Engine in moderner und klassischer Ansicht verwenden.
- [x] Technisches Konzept für klassische Listen und Bibliotheken erstellen, da SPFx Field Customizer und ListView Command Sets dort nicht ausgeführt werden.
- [x] Darstellung und Zeilenverlauf für die klassische Ansicht über CSR/JSLink realisieren.
- [x] Die Aktion **„Ablaufdatum +1 Jahr“** in der klassischen Ribbon-/Listenoberfläche bereitstellen.
- [x] Zugriff auf die ExpiryIndicator-Einstellungen auch aus klassischen Ansichten ermöglichen.
- [x] Aktivierungs-, Deaktivierungs- und Upgrade-Skripte um die Classic-Registrierungen erweitern.
- [x] Dieselbe Konfiguration und dasselbe Regelverhalten in moderner und klassischer Ansicht verwenden.
- [ ] Funktions-, Berechtigungs- und Darstellungstests für klassische Listen und Dokumentbibliotheken ergänzen.
### Release 2.0
- [x] Versionsstände von Solution, Feature und SPFx-Komponenten auf `2.0.0` anheben.
- [x] README um V2-Regeln, Classic-Aktivierung und Deaktivierung ergänzen.
- [x] Pakete mit Node.js 8.17.0 erstellen und lokale Package-Validierung erfolgreich ausführen.
- [ ] Feature-Upgrade in SharePoint Server Subscription Edition testen.
- [ ] Modern-/Classic-Abnahmetest auf einer Testliste und einer Test-Dokumentbibliothek durchführen.
## Abnahmekriterien
- Die Solution enthält und provisioniert keine Definition für eine fachliche Ablaufdatumsspalte.