Skip to content

feat(app-root): Nextcloud's own settings in the board settings navigation, and heading icons - #1765

Merged
rubenvdlinde merged 4 commits into
developmentfrom
feat/user-settings-nav-groups
Oct 17, 2026
Merged

rubenvdlinde merged 4 commits into
developmentfrom
feat/user-settings-nav-groups

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Board DqPersoonlijkeInstellingen draws the user settings with Nextcloud's own personal settings first in the left list (Persoonlijke info, Beveiliging, ..., Privacy), then one entry for the app ("Dossiq") holding its sections, and an icon before each section heading. The board user settings dialog (#1707) listed only the app's registered sections, with icons only in the navigation.

  • nextcloudLinks on CnUserSettingsDialog, userSettingsNextcloudLinks on CnAppRoot: [{ label, section? | href?, icon? }], listed first as links (section opens /settings/user/<section>), then an entry named after the app with its registered sections under it. Labels go through the app's translate. Nextcloud exposes no API to an app page for its personal settings sections (the server renders them; the OCS navigation endpoint only has the settings menu), so the list is configured.
  • A section's #icon also stands before its heading (teleported into the section's own heading, aria-hidden, drawn again when a section is renamed); the navigation keeps its icon too.
  • The dialog now also provides NcAppSettingsSection's legacy-design key, so a real section mounts without an injection warning.
  • Board look only; without nextcloudLinks the navigation is as before. No schema change. The ordered list control for "Zaaktypen in mijn menu" is feat(fields): an ordered list a user keeps, with the keyboard #1763.

Verified locally: tests/components/CnUserSettingsDialogGroups.spec.js (new; the links and heading-icon cases fail without the change), CnUserSettingsDialog.spec.js, CnAppRoot.userSettingsSections.spec.js, tests/l10n/ (103/103 via heavy.sh), tests/a11y/CnUserSettingsDialog.a11y.spec.js (new, axe on the real @nextcloud/vue over the navigation), eslint + stylelint on changed files, check:jsdoc, check:docs, check:docs-mdx, generated reference pages regenerated. Full jest, docs-fresh, build and e2e are left to CI.

AI disclosure: written with Claude Code (claude-opus-5-5).

🤖 Generated with Claude Code

…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
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/nextcloud-vue @ b3bc576

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 10:19 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit 630c4c3 into development Oct 17, 2026
44 checks passed
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