Files
Megamenu/ToDo.md
Torsten Brendgen 50b85468f1 feat: Enhance MegaMenu with localization, caching, and new properties
- 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.
2026-07-20 21:34:24 +02:00

3.0 KiB
Raw Permalink Blame History

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.OpenInNewWindow sicher unterstützen.
  • Lade-, Leer- und Fehlerzustände verständlich und barrierearm darstellen.

Lokale Term-Eigenschaften

  • MegaMenu.Hidden zum gezielten Ausblenden eines Terms unterstützen.
  • MegaMenu.OpenInNewWindow für ein neues Browserfenster unterstützen.
  • MegaMenu.Description als 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 cacheVersion zur 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-expanded kommunizieren.
  • 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 package mit 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.