- Added localization support for loading states, empty navigation, and submenu actions in both German and English. - Introduced new properties in IMenuItem for description, openInNewWindow, and external links. - Updated SPTermStorePickerService to handle cache versioning and language-specific caching. - Implemented a new MegaMenuCore service for handling term properties, cache management, and navigation URL resolution. - Refactored TaxonomyNavigationService to build menu hierarchy and filter hidden terms. - Added automated tests for MegaMenu core functionalities and static asset validation. - Removed unused ItemDictionary service. - Created a comprehensive ToDo document outlining the implementation status and future tasks.
3.0 KiB
3.0 KiB
MegaMenu – Arbeitsplan Version 2.2
Status: Implementierung abgeschlossen; Ship-Build auf der vorgesehenen Node-8-Buildumgebung ausstehend
Funktionsumfang
- Mobile Navigation als Hamburger-Menü mit aufklappbaren Unterebenen umsetzen.
- Hover als Komfortfunktion beibehalten; Bedienung per Klick, Touch und Tastatur gleichwertig unterstützen.
- Für Menüpunkte mit Ziel und Unterpunkten eine getrennte Öffnen-Schaltfläche anbieten.
- Navigations-URLs validieren und unsichere Protokolle blockieren.
- Externe Links und
MegaMenu.OpenInNewWindowsicher unterstützen. - Lade-, Leer- und Fehlerzustände verständlich und barrierearm darstellen.
Lokale Term-Eigenschaften
MegaMenu.Hiddenzum gezielten Ausblenden eines Terms unterstützen.MegaMenu.OpenInNewWindowfür ein neues Browserfenster unterstützen.MegaMenu.Descriptionals optionale Linkbeschreibung unterstützen.- Eigenschaften in Modern und Classic identisch auswerten.
Die Eigenschaften werden im Term Store als lokale benutzerdefinierte Eigenschaften am jeweiligen Term gepflegt. Styling bleibt Aufgabe der Solution Custom Branding.
Cache
- Cache-Schlüssel um Site Collection, Sprache und Schemaversion erweitern.
- Konfigurierbare
cacheVersionzur administrativen Invalidierung ergänzen. - Abgelaufene und ungültige Cache-Einträge sicher entfernen.
- Bei einem temporären Taxonomy-Fehler auf den letzten vorhandenen Cache zurückfallen.
Mehrsprachigkeit
- Sämtliche sichtbaren Status- und ARIA-Texte lokalisieren.
- Bevorzugtes Term-Label anhand der aktuellen SharePoint-Sprache verwenden.
- Cache nach Sprache trennen.
- Deutsche und englische Ressourcen pflegen.
Barrierefreiheit
- Semantische Schaltflächen für das Öffnen von Untermenüs verwenden.
- Vollständige Tastaturbedienung inklusive Pfeiltasten und Escape sicherstellen.
- Fokus beim Öffnen und Schließen nachvollziehbar führen.
- Mobile Accordion-Zustände über
aria-expandedkommunizieren. - Fokusdarstellung, Hochkontrast und reduzierte Bewegung berücksichtigen.
Qualitätssicherung
- Automatisierte Tests für URL-Validierung und externe Links ergänzen.
- Automatisierte Tests für lokale Term-Eigenschaften ergänzen.
- Automatisierte Tests für Cache-Schlüssel und Cache-Verhalten ergänzen.
- Automatisierte Tests für Hierarchie, Sortierung und aktive URLs ergänzen.
- TypeScript-, Classic-Syntax-, Classic-Build- und statische Asset-Prüfungen ausführen.
npm run packagemit Node.js 8.17.0 auf der vorgesehenen Buildumgebung ausführen.
Der lokale SPFx-Gulp-Build wurde mit Node.js 24 gestartet und erwartungsgemäß durch die alte Gulp-3-Abhängigkeit mit primordials is not defined beendet. Das ist kein TypeScript- oder Projektfehler; SPFx 1.4.1 benötigt für diesen Schritt Node.js 8.17.0.
Nicht Bestandteil dieses Durchlaufs
- PortalSettings in Version 3 als SPFx-Webpart neu aufbauen.
- MegaMenu-Diagnose und Live-Vorschau in PortalSettings integrieren.