Skip to content

Render server-provided breadcrumbItems in qvt and vuet headers#247

Draft
kaevee wants to merge 1 commit intomoqui:masterfrom
kaevee:master
Draft

Render server-provided breadcrumbItems in qvt and vuet headers#247
kaevee wants to merge 1 commit intomoqui:masterfrom
kaevee:master

Conversation

@kaevee
Copy link

@kaevee kaevee commented Mar 17, 2026

Render server-provided breadcrumbItems in qvt and vuet headers

Problem

The header breadcrumb rendering only displayed the default final nav title/path. With backend-provided custom breadcrumb state, UI should render each breadcrumb item with optional links.

Use Case

Some screens need custom breadcrumb trails (including intermediate links and non-link labels) that differ from default menu depth/title rendering, so users can navigate contextual paths correctly.

What Changed

  • Updated WebrootVue.qvt.ftl header breadcrumb area:
    • If breadcrumbItems exists on the current nav item, iterate and render each item.
    • Render separators between breadcrumb items.
    • Render <m-link> when pathWithParams exists; otherwise render plain text.
  • Updated WebrootVue.vuet.ftl with equivalent behavior.
  • Kept existing fallback behavior when breadcrumbItems is absent.

Behavior

  • Preferred rendering path:
    • navMenuList[last].breadcrumbItems
  • Fallback path:
    • Existing single-title/default breadcrumb rendering

Backward Compatibility

  • No UI regression expected for screens that do not provide breadcrumbItems.
  • Existing menu/nav data remains valid.

Validation

Manual checks:

  1. Open a screen with custom breadcrumb items and verify ordered breadcrumb display and links.
  2. Verify a breadcrumb item without pathWithParams renders as non-link text.
  3. Open a screen without breadcrumbItems and verify existing fallback title behavior.
  4. Validate both qvt and vuet render modes.

Reviewer Focus

  • Visual consistency between qvt/vuet header breadcrumbs.
  • Correct fallback behavior when breadcrumbItems is missing.
  • Any expected UX edge cases (long labels, many breadcrumb segments).

Related PR

- update WebrootVue.qvt.ftl header breadcrumb area to iterate breadcrumbItems
- update WebrootVue.vuet.ftl header breadcrumb area to iterate breadcrumbItems
- preserve existing fallback behavior when breadcrumbItems is absent
- render links when pathWithParams exists and plain text otherwise
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants