Skip to content

chore(release): promote development to beta (batch 10) - #1778

Merged
rubenvdlinde merged 1 commit into
betafrom
development
Oct 18, 2026
Merged

rubenvdlinde merged 1 commit into
betafrom
development

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Promotes library batch 10 (#1777) to beta. Merge tree equals the development tree.

🤖 Generated with Claude Code

* feat(settings): CnSettingsFieldsSection, a settings section declared as fields, on a shared CnSettingsField

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(settings): a field may read and save at its own endpoints, and an image field uploads at once

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(app-nav): the board look's active entry and attention count read under a theme

The active entry painted its primary-light wash on the link as well as the
entry, so a theme that tints the entry (thematiq's accent wash, as DqZijbalk
draws it) was covered by the link. The wash now sits on the entry only.

The red attention count wrote its number in --color-error-text, which is the
error colour for text on a light ground (#8A0000 under thematiq), so the
number was dark red on red. It is white now.

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(app-nav): the board look's open entry keeps the tonal primary over nc-vue's mix

NcAppNavigationItem paints an active entry with a 16% (22% hovered) primary
mix at `!important`. Moving the board wash from the link to the entry left
it below that rule, so the open entry showed the mix instead of
--color-primary-element-light (screens-chrome-nav-parity e2e). The entry now
carries the tonal primary at `!important`, hovered too, scoped to the board
look, and the link carries the same ground again. Outside the board look
nothing changes.

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(app-nav): a caption's edit pencil sits on the caption line in the board look

DqZijbalk draws the "Mijn zaaktypen" pencil at the end of the caption line,
a 28px round muted button with a 16px icon that adds no height. Under
thematiq's Zuiddrecht sheet the caption is `display: block` at id strength,
so the pencil wrapped onto a 39px line of its own. In the board look the
pencil is now placed absolutely at the caption's end, 4px in.

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(settings): a dotted key the answer holds as written is read as written, for every target

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(look): the board's info note, a light-blue rounded box

NcNoteCard type="info" drew a dark edge bar and, under thematiq, the body
ink on the info ground. The boards draw an info note as a light-blue
rounded box: no bar, 12px 14px of padding, radius 8, an 18px icon 10px
before 14px text in the deep primary ink, and a bold heading line
(DqBesluit and 13 other boards). The board look now does. NcNoteCard sets
its ground and ink with `!important` and thematiq forces the ink and weight
of every p, so the ground, the ink and the heading weight carry
`!important`, scoped to the board look.

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(settings): saveParams merged into a field's save body, and OCS targets get the OCS-APIRequest header

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(record-list): rows that are plain strings, and a notice presentation

A record list reading an endpoint that answers ["…", "…"] reads each row
as { value }: templates reach it as {value}, and without a title a row shows
the value. presentation: "notice" draws the rows as sentences in one box
toned by variant, after an optional lead with {total} (board
DqZaaktypeOverzicht, Controle). No schema change.

Assisted-by: ClaudeCode:claude-opus-5-5

* fix(dialog): text fields in a board dialog are the board's field

A Nextcloud text field in a board dialog floated its label inside the border
and drew that border as NcInputField's 65%-transparent shadow, which on the
white dialog read as an empty band (PlanItemDialog). In a board dialog a text
field or text area now takes the board's field: its own label above the
control at 14px/600, the control 40px with a solid 1px grey border and
radius 8. A field with `labelOutside` keeps the app's label and gets the
same control.

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(setup-wizard): the app's name and catalog from an admin page; a board choice step's intro and footnote

From an admin page the setup wizard read "Set up this app" with an English
eyebrow, and its step copy stayed in the manifest's source language:
CnAdminSettingsShell passed no `appName`, and no CnAppRoot wraps an admin
page to provide `cnTranslate`. The shell now passes its `appName` ("Dossiq
instellen, stap 1 van 3") and, when no ancestor provides one, hands down the
app's own catalog as `cnTranslate`. CnWizardDialog's default button labels,
success text and title were English literals; they now go through the
library catalog ("Wizard" added, nl "Assistent").

A choice step in the board look sets its `body` as a plain paragraph above
the options (the Nextcloud look keeps the info note), and a new `note` (or
`footnote`) draws a muted line under them, translated like the body
(DqInstellen). Manifest schema 2.123.0 adds the step's `note` and
`footnote`.

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(index-page): headerMeta counts another list, and the board drops its count line for it

DqContracten reads "38 contracten bij 21 leveranciers" after the breadcrumb;
headerMeta could only count its own list. A page can now name other lists
in `headerMetaCounts` ({ name: { register, schema, filter? } }), each read as
one list total and filled in for `{count:<name>}`. While a count loads, or
when it fails, the note is left out rather than shown with a gap.

In the board look, when the note after the breadcrumb already carries a
count ({shown}, {total} or {count:...}) the page no longer adds its own
"{shown} of {total}" line under the title (DqPrivacy, DqContracten); a page
that sets countText keeps it.

Needs schema key: config.headerMetaCounts (added here; the schema version
and hash bump are left to the batch integration).

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(index-page): a page tab can be drawn for admins or a permission only

DqContracten's "Portaalaccounts" tab belongs to an administrator. A manifest
page tab can now carry `adminOnly` (drawn only for an instance admin, from
Nextcloud's current user) or `permission` (drawn only for a user who holds
it; with no permissions known it shows, as a menu entry does).

This hides the tab and nothing more. It is not access control: the page a
hidden tab points to must still refuse the user on the server, since anyone
can type its address. The docs row says so. A hidden tab does not shift the
counts of the tabs after it.

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(record-list): a completed-count token in the header note

A record list's header note could only say `{total}`; a checklist card says
"5 van 7 stappen klaar". `headerNote` (and the header link's label) now
fills `{count:<field>=<value>}` with the number of loaded rows whose field
reads that value. It counts the rows the list loaded, so it is exact when
`limit` covers the list; the docs say so.

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(flow-board): test the saved flow with a picked record

DqFlow's header has "Testen met een zaak". With `testSubject` ({ register,
schema, labelField?, label? }, manifest `config.testSubject` on a
flow-detail page) the board header draws that button. It opens a dialog
with a record picker on that register and schema, and runs the saved flow
once with the picked record as its subject; the run shows on the canvas as
any run does. An unsaved flow cannot be tested. `label` goes through the
app's catalogue; without it the button reads "Test with a record" (nl
"Testen met een record").

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(facts-widget): a status pill in the card header and a note band in the card

DqBezwaar's advice card has "Advies ontvangen" as a pill beside its title
and a light note band under its facts. A facts widget can now declare
`headerPill` ({ path?, text?, map?, variant?, variantMap?, colorMap? }),
read from the record like a `pill` entry and reported through its `header`
event, which the detail host draws beside the card title; nothing shows
while the value is empty. `notice` ({ text, variant? }) draws a note band
inside the card under the facts, info by default.

Assisted-by: ClaudeCode:claude-opus-5-5

* feat(detail-page): drop the menu's built-in unread and sidebar entries, tag admin entries

DqZaakMeer's Actions menu has no "Markeren als ongelezen" and no "Zijbalk
openen", and each admin-only entry ends in a muted "beheerder" tag. A page
can now drop the two built-ins with `actionsMenu.showMarkUnread: false` and
`actionsMenu.showOpenSidebar: false`; omitted, both stay as before. In the
board look every entry in the admin group carries the tag ("admin", nl
"beheerder"), drawn from an attribute because the menu renders entry text
as plain text and opens outside the page.

Needs schema keys: actionsMenu.showMarkUnread and actionsMenu.showOpenSidebar
(added here; the version and hash bump are left to the batch integration).

Assisted-by: ClaudeCode:claude-opus-5-5

* chore(schema): manifest schema 2.123.0 for batch 10

One bump for the batch: the setup step's note and footnote,
config.headerMetaCounts, and actionsMenu.showMarkUnread / showOpenSidebar.
The hash is recorded over all three; the branch-level 2.123.0 entry is replaced.

Assisted-by: ClaudeCode:claude-opus-5-5

* docs: regenerate the reference pages for batch 10

Assisted-by: ClaudeCode:claude-opus-5-5
@rubenvdlinde
rubenvdlinde merged commit 50b1c93 into beta Oct 18, 2026
44 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/nextcloud-vue @ 8c00a91

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-18 10:33 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