Skip to content

fix(styles): launchpad loads the library stylesheet itself - #861

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/library-stylesheet
Oct 13, 2026
Merged

rubenvdlinde merged 1 commit into
developmentfrom
fix/library-stylesheet

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Launchpad now loads the library stylesheet itself: import '@conduction/nextcloud-vue/css/index.css' in src/main.js, src/public.js and src/admin.js, as pipelinq, dossiq and shillinq do.

Until now the board look, widget and dialog styles of @conduction/nextcloud-vue reached launchpad's pages only when another app's bundle on the same page happened to carry them. Found by lane L7: it is why the Flows toolbar centred its buttons.

What changes for a user

Compared on :8080 as pieter, same build otherwise (before: LA/shots-14b/, LA/diffs-14b/; after: LA/shots-14/, LA/diffs-14/):

  • Flows: the view switch and the New flow, layers and Acties buttons sit on the right of the header, the search field gets its own row, and the empty state is a bordered card. Before, the buttons sat in the middle of a grey bar.
  • Store: the page title and description move about 56px to the right of the search row, and the selected navigation entry turns blue-grey instead of pink. Both come from the library's own rules now applying; the board puts the title flush with the content.
  • Start page and the dialogs: no visible change.

Nothing is removed.

Verified (local)

One heavy call: build and measure the entry files of development first, then the change.

  • l10n parity 0, npm run lint 0, npm run build 0. No style file changed, so stylelint had nothing to check. No PHP changed.
  • npx vitest run --maxWorkers=2: exit 1, 965 of 965 tests pass, 121 of 122 files; tests/vitest/shared-instance.spec.ts fails to load (@vue/tsconfig above the mount, same on development).
  • Pixel diff as pieter, before and after:
    • LpStart: 6.25% to 6.22%.
    • LpStore: 6.54% to 6.63% (the title offset above).
    • LpDashboardInstellingen: 47.10% to 47.06%.
    • LpVersies: 70.58% to 70.52%.

Left open

  • The Store title offset: CnStorePage header under the board look leaves room left of the title. Library.
  • src/kiosk.js imports no library component, so it does not load the stylesheet.

main.js, public.js and admin.js never imported
@conduction/nextcloud-vue/css/index.css. The board look, widget and dialog
styles only arrived when another app's bundle on the page carried them,
which is why the Flows toolbar centred its buttons. pipelinq, dossiq and
shillinq import it the same way.
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/launchpad @ ccdbe2c

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 17:48 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde
rubenvdlinde merged commit aba6820 into development Oct 13, 2026
40 of 43 checks passed
rubenvdlinde added a commit that referenced this pull request Oct 13, 2026
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).
rubenvdlinde added a commit that referenced this pull request Oct 14, 2026
…ok, opening on Algemeen (#862)

* fix(admin): the admin page opens on Algemeen, in the board's cards and 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.

* fix(admin): the admin page uses the full width, as the board

* Revert "fix(admin): the admin page uses the full width, as the board"

This reverts commit c0829bf.

* chore(deps): launchpad builds on nextcloud-vue 2.82.0

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).

* fix(admin): the admin page draws in the library admin shell, board look

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.

* fix(admin): switches as the board draws them, no strip under the banner

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.
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