Repository navigation
feat(site): the Zuiddrecht resident pages match the boards: board keys on blocks and pages, menu groups and rows from the portal - #1253
Merged
rubenvdlinde merged 10 commits intoOct 6, 2026
Conversation
… on blocks and pages, menu groups and rows from the portal
…register test at 0.67.0
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
October 6, 2026 18:27
…t-resident-pages-match-the-boards # Conflicts: # l10n/en.js # l10n/en.json # l10n/nl.js # l10n/nl.json # lib/Settings/portaliq_register.json # package.json # tests/Unit/Settings/PortaliqRegisterConfigTest.php
Contributor
Quality Report — ConductionNL/portaliq @
|
| 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-06 22:39 UTC
Download the full PDF report from the workflow artifacts.
# Conflicts: # l10n/en.js # l10n/en.json # l10n/nl.js # l10n/nl.json # package.json # src/shared/i18n/en.json # src/shared/i18n/nl.json
Contributor
Quality Report — ConductionNL/portaliq @
|
| 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-06 23:01 UTC
Download the full PDF report from the workflow artifacts.
This was referenced Oct 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The signed-in pages of the Zuiddrecht example site are rendered by the generic Mijn omgeving blocks, and the Mijn Zuiddrecht boards (MijnOverzicht, MijnZaken, Zaak, MijnMenu) draw several of them differently. Measured on the demo instance (:8097, 6 October; the "before" and "after" shots and the boards rendered from their x-dc source are in the lane dir, named in the report): the case cards were Den Haag folder cards with the step line above a 6px bar and a green status badge; the open question was an action row with a date badge; the newest messages were action rows with "Nieuw" badges and chevrons; the resident menu had the site's own groups and no Overzicht entry; Mijn zaken drew folder cards; the case page opened on "Uw zaak" as the h1 with the title under it, showed Documenten and Wat er is gebeurd twice, and had no Gegevens heading and no Mijn zaken crumb.
The site serves every portal, so none of this can be the new default: each difference is a key a contribution or a portal declares, and a block, page or portal that declares none renders as before (tested).
What changes
Keys a contribution may declare (
lib/Contribution/BoardKeys.php, wired into the list, school, record and resolver normalisers; each kept only when well formed):cases:display: compact(number left, pill tag right, the title as a link, an 8px bar, one line "Stap 1 van 5 · klaar uiterlijk 1 november" under it),showAll: true("Alle zaken" beside the heading whenever the collection has a page),yourTurn: [values](the turn values at which the tag reads the turn's words, in the warning tone, instead of the status in the new info tone).taskswithdisplay: highlight:tone: warning|info,dueInLine: true("Voor uw aanvraag ..., uiterlijk 18 oktober").inbox:display: list(a title and "vandaag" / "gisteren" / the day, "Alle berichten" beside the heading, no badge, no chevron).documents:upload: true(an outlined "Document toevoegen" beside the heading, through the case screen's route).detail:label(a heading over the facts, "Gegevens") andtimeline: false(the card draws no history of its own, the timeline block does).citizenCase:display: actions(the closed window sentence as a green notice with a tick; no status block, no documents section; the fields, "Mijn wijziging opslaan" and "Deze aanvraag intrekken" stay).record:heading: record(the record's name is the h1, "Uw zaak · 2026-0082" its eyebrow) andunder: cases(the breadcrumb passes through Mijn zaken).Keys a portal may declare (portal schema 0.12.0, register 0.67.0, both additive):
residentMenu.groups(the menu in the portal's own groups by section name orapp:page,overviewas an item that opens /mijn, no icons; an item the layout does not name keeps its place in the site's own groups, so nothing becomes unreachable) andmyCases.display: rows(Mijn zaken as rows with "Uiterlijk klaar op"). The Zuiddrecht example site declares both.Where every moved thing is reachable now: Bezwaar maken and Klacht indienen stay on the overview (dossiq's cta blocks, unchanged); Mijn wijziging opslaan and Deze aanvraag intrekken stay on the case page under Stukken (the case screen with
display: actions); Toegang tot zaken and Melding indienen stay in the menu (Melding indienen in the declared "Vragen en meldingen" group, Toegang tot zaken appended in the site's own "Zaken en taken" group). The tests intests/zuiddrecht-resident-boards.spec.mjsrender each.What dossiq must declare for the boards to show (not in this PR; swapped in on :8097 by rename for the live check, originals restored): in
lib/Portal/PortalPages.phpthe keys above on its overview blocks (cases:display,showAll,yourTurn: ['applicant'];tasks:display: 'highlight',tone: 'warning',dueInLine: true,buttonLabel: 'Document toevoegen';inbox:display: 'list'), on its case page (record:heading: 'record',under: 'cases';documents:label: 'Stukken',upload: true;detail:label: 'Gegevens',timeline: false;citizenCase:display: 'actions'), and inlib/Portal/CitizenManifest.phpvalueLabels.portalTurn.applicantreading "Wacht op u". The open question's case line ("Voor uw aanvraag parkeervergunning") needs a lookup of the case title on thevragenAanUblock (lookups+subtitleFields), also dossiq's.Open decision, not changed
The case page's section order stays dossiq's (steps, documents, timeline, facts, actions); the board draws steps, Gegevens, Stukken, then the question.
Remaining differences, each with its reason
utrecht-heading-2, the record's name's size); the greeting is 44px.Verified
composer check:strict(COMPOSER_PROCESS_TIMEOUT=0, per-lane TMPDIR): lint, phpcs, phpmd, psalm, phpstan green; PHPUnit 2914 tests with the 46 inherited "class not found" errors (identical on a clean development clone, see feat(site): the Zuiddrecht example resident: Sanne de Vries, her cases and a sign-in without a broker #1227) and no failure after the register test pin (PortaliqRegisterConfigTestOK, 26 tests).tests/Unit/Contribution/BoardKeysTest.php+ the five neighbouring normaliser tests: 74 tests OK. phpcs on every changed PHP file: clean.npm run check:specs(all 118 specs, the newcheck:resident-boardswired in): exit 0 (118 spec files, 0 failing).npm run lint: 0 errors.stylelint,format(prettier),check:schema-l10n,check:l10n-js,check:register,check:json-strict: exit 0.ConductionNL/.githubmain,HYDRA_GATE_BASE_REF=origin/development): 86 of 86 applicable gates ran; one red, gate-64apphost-autoload-preludeonlib/AppInfo/StorePlaneRegistrar.php, untouched by this PR (inherited; identical on origin/development).Inherited, not touched: gate-64 above.
🤖 Generated with Claude Code