Welcome-Page Sections

Die zentrale Welcome-Page ist der erste Tab, den der Benutzer nach dem Start der Shell sieht. Sie zeigt Tastenkürzel, Schnellzugriffe und — wenn Add-ins installiert sind — zusätzliche Sektionen mit markenspezifischen Links und Aktionen. Add-ins deklarieren diese Sektionen im Manifest, und die Shell rendert sie als HTML-Blöcke unterhalb des eingebauten Inhalts.

Im Unterschied zu ViewsWelcome, die Begrüßungsinhalte in leeren Sidebar-Views anzeigen, betrifft welcomePage die zentrale Willkommensseite im Dokumentbereich. Beide Mechanismen verwenden das command:-Schema für Aktionslinks, aber sie adressieren unterschiedliche UI-Bereiche.

Zurück zur Contributions-Übersicht oder zur Hauptübersicht.

Manifest-Deklaration

"contributes": {
  "welcomePage": [
    {
      "title": "WIS Prüfungen",
      "icon": "codicon-shield",
      "order": 10,
      "contents": [
        {
          "label": "Prüfungen ausführen",
          "command": "wis.proofExec.open",
          "icon": "codicon-checklist"
        },
        {
          "label": "Prüfungen planen",
          "command": "wis.proofPlan.open",
          "icon": "codicon-calendar"
        },
        {
          "label": "Vorschau",
          "command": "wis.proofForecast.open",
          "icon": "codicon-telescope"
        }
      ]
    },
    {
      "title": "Berichte",
      "icon": "codicon-output",
      "order": 20,
      "contents": [
        {
          "label": "Excel-Export",
          "command": "wis.task.exportExcel",
          "icon": "codicon-file-binary"
        }
      ]
    }
  ]
}

Felder — Section

Feld Pflicht Beschreibung
title ja Überschrift der Sektion. Wird als <h3> gerendert. Unterstützt NLS-Platzhalter.
icon nein Codicon-Name für die Überschrift (derzeit reserviert, noch nicht gerendert).
order nein Sortierposition unter allen Sektionen. Niedrigere Werte stehen weiter oben. Standard: 0.
contents ja Array von Links, die in der Sektion als klickbare Einträge erscheinen.
Feld Pflicht Beschreibung
label ja Anzeigetext des Links. Unterstützt NLS-Platzhalter.
command ja Referenz auf einen deklarierten Command. Klick löst diesen Command aus.
icon nein Codicon-Name neben dem Linktext (derzeit reserviert, noch nicht gerendert).

Merge-Verfahren

Wenn mehrere Add-ins Sektionen zur Welcome-Page beitragen, sammelt der Host alle Einträge und sortiert sie nach order (numerisch aufsteigend). Sektionen mit gleichem order-Wert erscheinen in Scan-Reihenfolge der Add-ins.

Jede Sektion wird als eigenständiger HTML-Block gerendert. Es gibt keine Gruppierung oder Verschmelzung von Sektionen verschiedener Add-ins — jede Sektion bleibt ein eigener Block mit eigener Überschrift.

Rendering

Die Shell rendert die Sektionen als HTML innerhalb der TIpHtmlPanel-Komponente. Jeder Link wird als <a href=„command:command.id“> gerendert und nutzt denselben Dispatch-Mechanismus wie die eingebauten Quick Links: Klick → OnHotClick → Validierung des command:-Schemas → ShellCommandRouter.ExecuteCommand().

Das Rendering erfolgt nur im eingebauten Fallback-HTML. Wenn eine externe welcome.html vorhanden ist (neben der EXE oder im media/-Unterordner), hat diese Vorrang. In diesem Fall muss der Kunde die Plugin-Sektionen selbst in sein HTML einbauen.

Externe welcome.html

Der Host sucht eine externe Welcome-Datei in dieser Reihenfolge:

  1. <EXE-Verzeichnis>/welcome.html
  2. <EXE-Verzeichnis>/media/welcome.html

Wird eine Datei gefunden, wird sie direkt in TIpHtmlPanel geladen. Plugin-contributed Sections werden in diesem Fall nicht automatisch eingefügt — die externe Datei hat volle Kontrolle über den Inhalt.

Wird keine externe Datei gefunden, generiert die Shell das eingebaute HTML mit Tastenkürzel-Tabelle, Quick Links und allen Plugin-Sektionen.

Beispiel: Ergebnis mit zwei Add-ins

Add-in A (WIS):

"welcomePage": [
  { "title": "WIS Prüfungen", "order": 10, "contents": [
    { "label": "Prüfungen ausführen", "command": "wis.proofExec.open" },
    { "label": "Prüfungen planen", "command": "wis.proofPlan.open" }
  ]}
]

Add-in B (Assets):

"welcomePage": [
  { "title": "Anlagenverwaltung", "order": 20, "contents": [
    { "label": "Anlageliste öffnen", "command": "assets.list" },
    { "label": "Neue Anlage erfassen", "command": "assets.create" }
  ]}
]

Das Ergebnis auf der Welcome-Page:

  ┌──────────────────────────────────────────────┐
  │              WvdS Shell                      │
  │     Business Application GUI Host            │
  │                                              │
  │  Getting Started                             │
  │  Ctrl+Shift+P    Command Palette             │
  │  Ctrl+B          Toggle Sidebar              │
  │  Ctrl+J          Toggle Bottom Panel         │
  │                                              │
  │  Quick Links                                 │
  │  > Open Command Palette                      │
  │  > Toggle Sidebar                            │
  │  > Settings                                  │
  │                                              │
  │  WIS Prüfungen              (order: 10)      │
  │  > Prüfungen ausführen                       │
  │  > Prüfungen planen                          │
  │                                              │
  │  Anlagenverwaltung           (order: 20)     │
  │  > Anlageliste öffnen                        │
  │  > Neue Anlage erfassen                      │
  └──────────────────────────────────────────────┘

Abgrenzung zu ViewsWelcome

Merkmal welcomePage viewsWelcome
Ziel-UI Zentraler Welcome-Tab (Dokumentbereich) Leere Sidebar-/Panel-Views
Sichtbarkeit Immer, wenn Welcome-Tab offen Nur wenn View leer ist
Format Titel + Link-Array (JSON) Markdown-Text mit [Text](command:id)
When-Klausel Nicht unterstützt (immer sichtbar) Unterstützt (bedingte Anzeige)
Manifest-Schlüssel contributes.welcomePage contributes.viewsWelcome

Weiter zu Sidebar-Views oder zurück zur Contributions-Übersicht.

Zuletzt geändert: den 16.03.2026 um 12:36