feat(page-layouts): a maker can lay out a case page per case type - #1023
Merged
Merged
Conversation
…d fields per case type
…r-case-type editor
…-layout-editor # Conflicts: # l10n/en.js # l10n/en.json # l10n/nl.js # l10n/nl.json
…hermiq Both rows are owned by ConductionNL/hermiq and were built there in the change archived as 2026-10-01-agents-bound-to-their-app (hermiq development d3cac1131). Set them built here with that reference.
Seven editor helpers had no @SPEC tag, which the spec-coverage gate counts as new untraced methods.
Contributor
Quality Report — ConductionNL/buildiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| check-gitignore | ✅ | ||||
| check-nc-floor | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 106/106 | |||
| npm | ✅ | ✅ 752/752 | |||
| 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-01 23:03 UTC
Download the full PDF report from the workflow artifacts.
…-layout-editor # Conflicts: # l10n/en.js # l10n/en.json # l10n/nl.js # l10n/nl.json
Covers the four null paths of knownLeafIds() (not resolvable, no listIds(), throws, answers no list) that CI's coverage guard read as new code without tests.
Contributor
Quality Report — ConductionNL/buildiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| check-gitignore | ✅ | ||||
| check-nc-floor | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 742/742 | |||
| 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-02 08:03 UTC
Download the full PDF report from the workflow artifacts.
…-layout-editor # Conflicts: # l10n/en.js # l10n/en.json # l10n/nl.js # l10n/nl.json
Contributor
Quality Report — ConductionNL/buildiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| check-gitignore | ✅ | ||||
| check-nc-floor | ✅ | ||||
| format | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 742/742 | |||
| 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-02 11:58 UTC
Download the full PDF report from the workflow artifacts.
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.
Change
case-page-layout-per-case-type(not archived: two tasks are owed by sibling repos). A maker can now author a page layout per case type in the detail-page editor: the tabs and their kinds and order, a widget grid with four widths, display conditions and a high-contrast mark per widget, the header fields, the task-list columns and search fields, and the document upload fields with their visibility and default. The layout is saved as apageLayoutobject and served by thebuildiq-page-layoutleaf.What this PR adds on top of what development already has (schema, leaf, applies-to panel):
PageLayoutBodyEditor.vueinsideAppliesToPanel.vue(tasks 6.1 to 6.6). Tabs are reordered with Up and Down buttons instead of dragging, so a keyboard and a screen reader can do it (WCAG 2.5.7); the design is corrected in tasks.md. Save stays disabled while a hidden upload field has no default; the server refuses it as well.PageLayoutAuthoringService::save()now reads the ids from OpenRegister'sIntegrationRegistry::listIds()and stays silent when the registry is absent.dossiq/casein the demo dataset (schema-wide,bouwvergunning,evenementenvergunning), each validated against thepageLayoutfragment.docs/elements/case-type-layouts.md, andtests/e2e/page-layout-editor.spec.ts(API level).Rows:
form-layout-per-typeandform-screen-overridestaybuilding. Their remaining half is a nextcloud-vue change (runtime-detail-layout:CnDetailPagemerges the leaf's answer over its manifest config, task 3.2) and a hand-off to dossiq for its task list and upload dialog (task 8.5). Both are drafted for Ruben, not filed.Also in this PR, from the hermiq lane:
ai-in-app-assistantandai-record-summaryare setbuiltwith a reference to hermiq's archived change2026-10-01-agents-bound-to-their-app(hermiq development d3cac1131), after reading hermiq's development.Tests (written by the previous lane; green on this head):
PageLayoutAuthoringServiceTest::testASaveWarnsOnALeafTheRegistryDoesNotKnow.tests/components/PageLayoutBodyEditor.spec.js,tests/components/AppliesToPanel.spec.js.Inherited, not fixed here: the vendored hydra-gates in
composer check:strictfail gate-101 on the five buildiq schemas that carry reasoned no-demo skips since #853; CI's required gate run (hydra-gates@main) honours the reasons.Live check: open an app's detail-page editor, Applies to: schema
case, type propertycaseType, valuebouwvergunning; add a widget tab with two widgets of width Small and Large, add a conditionstatus is not empty, add an upload fieldconfidentialityhidden with defaultintern, save as Published.GET /apps/buildiq/api/page-layoutslists it; the leafbuildiq-page-layoutfor abouwvergunningcase returns the tabs in order.Verification on this head (base development f05abe1, which the branch contains): composer check:strict: lint, phpcs, phpmd, psalm, phpstan green, PHPUnit OK (1329 tests); its vendored gates fail gate-101 (inherited, above) and gate-16 on seven untagged editor helpers, which the last commit tags. CI's gate run (hydra-gates@main, full scope, --require-full-coverage) on the final head: all 85 applicable gates passed, exit 0. npm lint 0 (warnings only), stylelint 0, format 0, vitest 0 (1700 tests), test:l10n 0, check:l10n-js 0, check:schema-l10n 0, check:manifest 0, check:gitignore 0, check:nc-floor 0. parity_verify --strict: census only. No local production build; CI's Frontend Build answers that.
🤖 Generated with Claude Code