Repository navigation
chore(release): promote development to beta (round 12 board look, batch 8) - #1772
Merged
Merged
Conversation
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
…and-heatmap # Conflicts: # src/schemas/app-manifest-v2.schema.json # tests/schemas/app-manifest-v2.schema.hashes.json # tests/schemas/app-manifest-v2.schema.spec.js
CnChartWidget draws chartKind "bar-list" (label, track at its share of barMax or the largest value, value, drilldown rows, footnote) and "matrix" (a series per row, tinted cells, text cells through colorMap, highlight outlines the record's cell), without ApexCharts. valueFormat gains "number" with suffix; endpointSource gains rowsPath. In the board look dashboard card heads draw no divider. Boards DqDashboard, DqTermijnen, DqDoorlooptijd, DqProcesanalyse, DqHandhaving. Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
…and-heatmap # Conflicts: # src/schemas/app-manifest-v2.schema.json # tests/schemas/app-manifest-v2.schema.hashes.json # tests/schemas/app-manifest-v2.schema.spec.js
Assisted-by: ClaudeCode:claude-opus-5-5
cellSource lists records that each hold one cell from a register (filter tokens resolved, e.g. @object.matrixVersion) and lays them out by rowField / columnField with valueField as the cell, with labels, order and valueLabels. highlight matches the cell keys. Generic for any app that keeps a matrix as data; board DqHandhaving. Assisted-by: ClaudeCode:claude-opus-5-5
…nifest config
An organisation is not a register/schema object, so CnIndexPage and
CnDetailPage could not load one. `entitySource: "organisations"` now lists
the viewer's organisations on an index page, and the same name on a detail
page reads one organisation (GET /api/organisations/{uuid}) as the page's
record, so header, pills, widgets and @objectid / @object.* tokens work as
on an object page. Access stays OpenRegister's.
Assisted-by: ClaudeCode:claude-opus-5-5
…ions-entity-source
…ema 2.123.0)
typePill / statusPill take resolve: { register, schema, labelField? }. The
pill's field value is looked up as a record of that schema with the
reference-label resolver the index tables use, and its label replaces the
id ("Woo-verzoek", not the case type uuid) and keys colorMap. The raw value
shows while the lookup runs and when it finds nothing.
Assisted-by: ClaudeCode:claude-opus-5-5
…ource Assisted-by: ClaudeCode:claude-opus-5-5
…4.0) With cellsPath, cellSource reads ONE record (filter, else fallbackFilter), takes its cells array, narrows it by cellFilter (tokens allowed) and orders the axes from rowOrderPath / columnOrderPath on that record. The one-record-per-cell mode stays. Schema 2.124.0 types cellSource. Assisted-by: ClaudeCode:claude-opus-5-5
…ions-entity-source # Conflicts: # docs/components/_generated/CnFlowsPage.md # docs/components/_generated/CnIndexPage.md # docs/components/_generated/CnTasksWidget.md # docs/components/_generated/CnWidgetGrid.md # docs/components/_generated/reliance.json # docs/components/cn-index-page.md # src/schemas/app-manifest-v2.schema.json # tests/schemas/app-manifest-v2.schema.hashes.json # tests/schemas/app-manifest-v2.schema.spec.js
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
CnOrderedListField draws rows in order with move up, move down and remove buttons, announces every change, and adds rows from a search-as-you-type picker; the app supplies the choices and gets update:modelValue (board DqPersoonlijkeInstellingen, "Zaaktypen in mijn menu"). Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
…tion, and heading icons Under the board look the user settings navigation can list Nextcloud's own personal settings first, as links (userSettingsNextcloudLinks), then one entry named after the app holding its sections, and a section's #icon also stands before its heading (board DqPersoonlijkeInstellingen). Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
New `checklist-run` widget (CnChecklistRunWidget): questions listed from a register with a token-resolved filter, shown pageSize at a time as fieldsets with radio choices (yes_no, yes_no_na, choice) or a text field, a note and photos. Answers are saved one record per question through the object API under the reader's rights, or through an app saveAction; photos go up through the answer object's own file upload. Focus and a live region follow each page. Board DqInspectie; usable in device-frames. Assisted-by: ClaudeCode:claude-opus-5-5
…ist-field # Conflicts: # l10n/en.json # l10n/nl.json
questionsPath (with itemsKey groups, both sorted by orderField) reads the questions off the open record; answersPath writes the changed answers of a page into an array on it, keyed by answerKey, with one update through the object API. typeMap and choiceValues map an app's type and value names onto the kinds (yes_no, yes_no_na, choice, number, photo, text). Photos go to the record's own files and their references into the answer. The separate-schema mode stays. Assisted-by: ClaudeCode:claude-opus-5-5
… by filter
fields.photoRequired with photoRequiredValues maps a question's rule onto
never / always / { whenAnswer }; such questions get their own photo
control and Next holds the page until the photo is attached. On a page
without a bound record, record: { register, schema, filter, sort } picks
the first matching record under the reader's rights, with emptyText when
nothing matches. Stacked on #1764.
Assisted-by: ClaudeCode:claude-opus-5-5
Under the board look the user settings dialog shows only the section of the current navigation entry (board DqPersoonlijkeInstellingen); the others stay mounted but hidden, so what was typed survives a switch, and switching moves focus to the shown section's heading. Assisted-by: ClaudeCode:claude-opus-5-5
…ist-field # Conflicts: # l10n/en.json # l10n/nl.json
…-run-widget # Conflicts: # l10n/nl.json
…ll-resolve # Conflicts: # docs/components/_generated/CnDetailPage.md # docs/components/_generated/reliance.json # src/schemas/app-manifest-v2.schema.json # tests/schemas/app-manifest-v2.schema.hashes.json # tests/schemas/app-manifest-v2.schema.spec.js
…summaries (#1762) * feat(roadmap): board.noticeLink turns a word in the notice into a link The first occurrence of noticeLink.text in the translated notice opens noticeLink.href in a new tab (board DqFunctionaliteiten: conduction.nl opens dossiq's comparison). Only http(s) and site-relative hrefs link; no match or any other href leaves the notice as plain text. Assisted-by: ClaudeCode:claude-opus-5-5 * fix(roadmap): translate the group captions, and board.summaries hides row summaries Category captions from config.categories now go through the app's translate function like the notice, so a Dutch page reads Dutch. In the rows layout board.summaries: false draws a feature as its title and status only (board DqFunctionaliteiten). Assisted-by: ClaudeCode:claude-opus-5-5
Every branch that adds a string appends to the same last lines of the catalogues, so every merge of development conflicted there. A git merge driver (scripts/merge-l10n.js, registered by prepare, named in .gitattributes) merges l10n/*.json per key; only a key both sides translated differently is a conflict. Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
…tion, and heading icons (#1765) * feat(app-root): Nextcloud's own settings in the board settings navigation, and heading icons Under the board look the user settings navigation can list Nextcloud's own personal settings first, as links (userSettingsNextcloudLinks), then one entry named after the app holding its sections, and a section's #icon also stands before its heading (board DqPersoonlijkeInstellingen). Assisted-by: ClaudeCode:claude-opus-5-5 * docs(app-root): Nextcloud links in the board settings navigation Assisted-by: ClaudeCode:claude-opus-5-5 * docs: regenerate the component partials Assisted-by: ClaudeCode:claude-opus-5-5
…x source (#1756) * feat(index): Nextcloud groups as folders and their members as an index source folderSidebar.source: "groups" lists Nextcloud groups with their member counts (folderSidebar.groups picks, orders and nests them). The named source "users" lists the selected group's members with function (profile headline), roles (profile role), e-mail and today: an out-of-office period that runs now ("Absent until <date>", dav app, Nextcloud 28+), else the user status message, else present or away. Board DqAfdelingen. Assisted-by: ClaudeCode:claude-opus-5-5 * docs(index): put the absence label example in a code span for MDX Assisted-by: ClaudeCode:claude-opus-5-5 * chore(index): sort the users source imports after merging development Assisted-by: ClaudeCode:claude-opus-5-5
…ings-one-section # Conflicts: # docs/components/cn-app-root.md # src/components/CnUserSettingsDialog/CnUserSettingsDialog.vue # tests/a11y/CnUserSettingsDialog.a11y.spec.js
The built-in formatter "masked" shows all but the last characters as "*" (formatterOptions.visible, default 4; at most five stars), the facts widget's rule. It masks the display only: the value is still in the row, and real hiding belongs in OpenRegister, which the docs say. A column aggregate op: "max" with field shows, per row, the highest field among the related objects (one _limit=1 request sorted descending), through the column's formatter; none shows zeroLabel, else a dash. Board DqOrganisaties (IBAN, Laatste contact). Assisted-by: ClaudeCode:claude-opus-5-5
# Conflicts: # docs/components/_generated/CnDetailPage.md # docs/components/_generated/reliance.json
Keeps development's endpoint, search and users sources next to the organisations source, and the entitySource enum holds all seven values. Schema numbered 2.122.0 for the batch. Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
feat: round 12 board look, batch 8
rubenvdlinde
requested review from
Rem-Dam,
SudoThijn,
WilcoLouwerse,
bbrands02,
remko48 and
rjzondervan
as code owners
October 17, 2026 12:46
Contributor
Quality Report — ConductionNL/nextcloud-vue @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ⏭️ | ||||
| phpcs | ⏭️ | ||||
| phpmd | ⏭️ | ||||
| psalm | ⏭️ | ||||
| phpstan | ⏭️ | ||||
| phpmetrics | ⏭️ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| test | ✅ | ||||
| check-build | ✅ | ||||
| check-vue3-compile | ✅ | ||||
| check-public-safe | ✅ | ||||
| check-journey-vocabulary | ✅ | ||||
| check-docs | ✅ | ||||
| check-docs-mdx | ✅ | ||||
| check-jsdoc | ✅ | ||||
| check-integration-parity | ✅ | ||||
| check-peers | ✅ | ||||
| check-docs-fresh | ✅ | ||||
| check-a11y | ✅ | ||||
| check-smoke | ✅ | ||||
| composer | ✅ | ✅ | |||
| npm | ✅ | ✅ 643/643 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ⏭️ | ||||
| REUSE | ✅ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ | ||||
| Hydra gates | ⏭️ |
Quality workflow — 2026-10-17 12:53 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.
Promotes batch 8 (#1771: l10n merge driver, ordered list field, checklist-run widget with record modes and photo rule, one-section settings dialog, header pill resolve, matrix cell records, organisations entity source; schema 2.122.0) plus #1756, #1761 and #1765 merged since 2.97.0. The merge tree equals development's tree.
🤖 Generated with Claude Code