Skip to content

feat(site): the resident menu lists children with a subtitle, counts and the organisation card - #1203

Merged
rubenvdlinde merged 36 commits into
developmentfrom
feat/resident-menu-badges-and-cards
Oct 5, 2026
Merged

rubenvdlinde merged 36 commits into
developmentfrom
feat/resident-menu-badges-and-cards

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

What

The resident menu as the school designs draw it (MijnMenu boards). Plan items G-05 and G-06.

  • A perRecord page that declares group lists each row as an item of that group with its records.subtitleFields as a second line ("Mijn kinderen": "Vera, Groep 7 · Meester Daan"). Without group the menu keeps a group per row.
  • A page may declare badge: {collection, label?}: the menu loads that collection with the per-record ones and shows the number of rows. The server keeps this key only once lane L2 adds it to lib/Contribution/PageMenuKeys.php (requested); until then no badge shows.
  • The phone button shows the portal's accountLabel and the total of the counts ("Mijn Wilgenboom, 2 nieuw").
  • Portal key residentMenu.cardLabel: while the session acts for an organisation (session.organisationName) the menu opens with a card ("U regelt het voor, Jansen Installatietechniek BV").
  • Styling: capital group names, the current entry on the accent's light wash with an accent bar, counts in the badge colours.

OpenSpec: openspec/changes/resident-menu-badges-and-cards.

Depends on

Stacked on feat/site-chrome-follows-the-design (#1202, merged into this branch). Merge that first; this diff then shows only the menu work. Uses thematiq brand-motif-on-portals for --thematiq-accent-* and --thematiq-badge-* (fallbacks otherwise).

Verified

  • node --test tests/resident-menu-badges.spec.mjs 5 tests green; mijn-home, site-resident-menu, site-navigation green (one regex in mijn-home allows the empty subline anchor). PortalShellTest green with the card label.
  • phpcs and phpmd clean on PortalShell.php; the full check:strict ran on the base branch (feat(site): the header, footer, sign-in page and motif of the school designs #1202).
  • Live on :8091 signed in through the DigiD stub (wilgenboom and warmtepompacademie): the menu styling (capital group names, link colour), the phone button "Mijn academie 9 nieuw" (9 unread messages). Not visible live yet: the grouped children with sublines and the badges, because learniq declares no group/subtitleFields on its per-child pages and the server drops badge until lane L2 keeps it; no session carries organisationName, so the card does not show. Each is covered by the node tests.

🤖 Generated with Claude Code

…ch, the account button, the footer button and contact column, and the sign-in cards
…p, phone menu), designed footer, sign-in cards, motif and hero styling
…from a collection, the organisation card, the phone button count
…ign' into feat/resident-menu-badges-and-cards
…th its own name for screen readers (lane L3's shape)
…ts through logoFileFor, the register test knows the new keys
…ign' into feat/resident-menu-badges-and-cards
…ign' into feat/resident-menu-badges-and-cards
@rubenvdlinde
rubenvdlinde requested a review from Rem-Dam as a code owner October 5, 2026 17:04
…-menu-badges-and-cards; register 0.66.0, portal schema 0.11.0
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/portaliq @ fd54166

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-specs ❌
check-manifest ✅
format ✅
check-l10n-js ✅
check-schema-l10n ❌
check-reuse ✅
composer ✅ ✅ 108/108
npm ✅ ✅ 984/984
app:check-code ⏭️
info.xml ✅
REUSE ✅
lockfile sync ✅
PHPUnit ❌
Newman ✅
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ❌

Quality workflow — 2026-10-05 17:31 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit ca59103 into development Oct 5, 2026
5 checks passed
rubenvdlinde added a commit that referenced this pull request Oct 5, 2026
Development carries the portal keys now (register 0.66.0, portal 0.11.0), so this
branch takes its register as it is: the example site adds no schema key.
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/portaliq @ fd7b4cb

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-specs ✅
check-manifest ✅
format ✅
check-l10n-js ✅
check-schema-l10n ✅
check-reuse ✅
composer ✅ ✅ 108/108
npm ✅ ✅ 984/984
app:check-code ⏭️
info.xml ✅
REUSE ✅
lockfile sync ✅
PHPUnit ✅
Newman ✅
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ✅

Quality workflow — 2026-10-05 18:20 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant