Skip to content

fix(admin): the admin page draws in the library admin shell, board look, opening on Algemeen - #862

Merged
rubenvdlinde merged 10 commits into
developmentfrom
fix/admin-general-tab
Oct 14, 2026
Merged

rubenvdlinde merged 10 commits into
developmentfrom
fix/admin-general-tab

Conversation

@rubenvdlinde

@rubenvdlinde rubenvdlinde commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

The LaunchPad admin page (/settings/admin/launchpad) draws in the library's admin shell with the board look. It opens on Algemeen, laid out as board LpBeheerAlgemeen.

What changed

  • Algemeen first. The setup banner, the default settings, group-shared dashboards and the default-app note sat above the tab strip, on every tab. They now belong to Algemeen, the tab the page opens on. An admin who last used another tab still lands there.
  • Page header from the library. CnAdminSettingsShell with look="board" draws the h1 "Launchpad-beheer: ", the path "Beheerinstellingen / Launchpad / " and the Documentatie button. On Algemeen the path ends with "geldt voor de hele organisatie". No version card: the board has none.
  • Cards from the library. Default settings, group-shared dashboards and the default-app note are CnSettingsSection cards in the shell's two columns. The app's own card and grid CSS is gone.
  • Tab strip at full width, without wide. The shell gives every child that is not a settings section the full grid width, without a card. The tab strip is such a child, so it needs no wide section. A wide section would also draw a card and a heading the board does not have.
  • Switches. The three on/off defaults are switches, as the board draws them.
  • Tab names follow the board. Bediening, Versies en analyse, Organisatiemenu, Demogegevens.
  • l10n. Two new strings. nl carries the board's Dutch; the other required locales carry the English text, as in fix(settings): personal settings move into the user settings dialog #838.

Nothing is removed. Every setting, hint and button is still on the page. The other eleven tabs draw their own content, unchanged.

Builds on #864 (nextcloud-vue 2.82.0), which brought the shell's breadcrumbs, its own board look and wide.

Verified (local, exit codes)

  • npm run build 0, npm run lint 0 (5 inherited warnings), npm run stylelint 0, l10n parity 0
  • npx vitest run --maxWorkers=2: exit 1. 976 of 976 tests pass, 122 of 123 files. tests/vitest/shared-instance.spec.ts fails to load because @vue/tsconfig is missing in the server tsconfig above the mount. That is inherited: the same failure shows on development.
  • AdminSettings.tabs.spec.js covers it: General first, the page opens on it, the defaults are a card of General only, the board look of the shell, the title names the open tab, the path ends on it, and the note shows on Algemeen only.
  • PHPUnit --no-coverage 0: 1953 tests, 13 skipped. No PHP changed.

Pixel diff (admin, 1440 wide)

Board development draft before this round now
LpBeheerAlgemeen 10.09 11.49 11.43 (header 12.14 to 11.58)
LpBeheerOnderhoud 9.52
LpBeheerRollen 10.74
LpBeheerAnalyse 9.42
LpBeheerDelen 9.99
LpBeheerNavigatie 9.40

The tab boards were not measured per tab on development: the tool's tab click did not switch tabs there. Rollen, Delen and Navigatie come from the run before the last commit (switches, panel background), because :8080 went into maintenance mid-run.

The structure now matches the board: h1, path, Documentatie, tab strip, banner, cards in two columns. The total stays above development's because three gaps are outside this app, and because the board shows two cards that have no backend.

Left open

  • Card titles, library. NcSettingsSection's own .settings-section__name { display: inline-flex; justify-content: center } centres each card title. The board-look rule sets the size but does not reset the alignment.
  • Card titles and tab padding, thematiq. nldesign/theme.css sets h2 { font-size: … !important } and the padding on button:not(.action-button) with !important. Those beat the board's 19px titles and the tabs' 9px padding, so titles render at 30px and the strip wraps after Demogegevens.
  • Board cards without a backend. Toegestane websites, Eigen CSS and "Launchpad openen na het aanmelden" (today a note that points to Theming). Not built here.

🤖 Generated with Claude Code

…d tabs

The setup banner, the defaults, group-shared dashboards and the default-app
note sat above the tab strip on every tab. They now form the first tab,
Algemeen, as cards in two columns (board LpBeheerAlgemeen), and the page
opens there. The tab strip takes the board's 44px tabs with a 3px
underline, and four tab names follow the board: Bediening, Versies en
analyse, Organisatiemenu, Demogegevens.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/launchpad @ 3f8a77d

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-manifest ✅
format ❌
check-schema-l10n ✅
composer ✅ ✅ 107/107
npm ✅ ✅ 636/636
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ✅ 1953/1953
Newman ✅ 224/224
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-13 18:14 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde marked this pull request as draft October 13, 2026 18:44
The library stylesheet check holds on the new dist: cn-store-page is in
the CSS and library-style.js stamps data-cn-library. No app workaround
needed removing; the app already imports the library stylesheet (#861).
CnAdminSettingsShell with look="board" draws the h1 that names the open
tab, the path line (Beheerinstellingen / Launchpad / <tab>, with "geldt
voor de hele organisatie" on Algemeen) and the Documentatie button. No
version card: the board has none.

The tab strip is a plain child of the shell, so it spans the grid without
a card or heading. On Algemeen the defaults, group-shared dashboards and
the default-app note are CnSettingsSection cards in the shell's two
columns. The app's own card and grid CSS goes: the library draws both.

l10n: two strings. nl carries the board's Dutch; the other required
locales carry the English text.
The three on/off defaults are switches. The tab panel takes its tab's
height and draws no white surface below the setup banner. The spec keeps
the router's other exports and lint is clean.
@rubenvdlinde rubenvdlinde changed the title fix(admin): the admin page opens on Algemeen, in the board's cards and tabs fix(admin): the admin page draws in the library admin shell, board look, opening on Algemeen Oct 14, 2026
@rubenvdlinde
rubenvdlinde marked this pull request as ready for review October 14, 2026 09:08
@rubenvdlinde
rubenvdlinde merged commit 6c3915d into development Oct 14, 2026
37 of 38 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/launchpad @ 5237dfb

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-manifest ✅
format ❌
check-schema-l10n ✅
composer ✅ ✅ 107/107
npm ✅ ✅ 636/636
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit 🚨 NO VERDICT — enabled but never ran
Newman 🚨 NO VERDICT — enabled but never ran
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-14 09:11 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