St. Georg App
Bereiche

Messdiener Bereich

Struktur und Navigation des Messdiener Bereichs.

Messdiener

Der Messdiener Bereich stellt Funktionen für die Messdienergemeinschaft bereit.
Er bildet sowohl tägliche Aufgaben wie Dienste als auch projektbezogene Elemente wie die Herbstfahrt ab.

Routen

Die Hauptroute für Messdiener ist /messdiener.
Sie wird in apps/web/src/routes/_authenticated/messdiener/index.tsx definiert.

Zu den typischen Unterrouten gehören:

Übersicht und Dashboard unter /messdiener
Gruppenverwaltung unter /messdiener/gruppen
Shop und Bestellungen unter /messdiener/shop
Stationsspiel und Karte unter /messdiener/karte
Fragebogen unter /messdiener/fragebogen
Sonderurlaubsanträge unter /messdiener/urlaub

Die vollständige Navigation wird in den Metadaten der aktiven Organisation gespeichert.
Ein Beispiel für den Messdiener Bereich sieht wie folgt aus:

{
  "navigation": {
    "groups": [
      {
        "label": "Allgemein",
        "sections": [
          {
            "title": "Übersicht",
            "url": "/messdiener",
            "icon": "Home",
            "isActive": true
          },
          {
            "title": "Cloud",
            "url": "https://cloud.messdienerschaft.de",
            "icon": "Cloud",
            "external": true
          }
        ]
      }
    ]
  }
}

Jede Gruppe besitzt einen Titellabel und eine Liste von Sektionen.
Sektionen können wiederum Unterpunkte über das Feld items enthalten.

Diese Struktur wird von NavMain in apps/web/src/components/layout/nav-main.tsx ausgelesen.
Die Funktion parseNavigationGroups in apps/web/src/lib/navigation.ts wandelt die rohen Metadaten in ein typsicheres Format um.

Für Links, die außerhalb der Anwendung liegen, kann das Feld external auf true gesetzt werden.
Im gerenderten Menü erscheint dann rechts ein Icon mit einem ausgehenden Pfeil und der Link öffnet sich in einem neuen Browser-Tab.