Skip to content

Add an add-ons control panel and update the control panels overview#123

Open
richardbenedikt wants to merge 12 commits into
mainfrom
addon-controlpanel
Open

Add an add-ons control panel and update the control panels overview#123
richardbenedikt wants to merge 12 commits into
mainfrom
addon-controlpanel

Conversation

@richardbenedikt

@richardbenedikt richardbenedikt commented Jun 11, 2026

Copy link
Copy Markdown

What this does

This PR does two things: it adds an add-ons control panel to @plone/cmsui at /controlpanel/addons, and it updates the control-panels overview page itself.

The add-ons view lists the add-ons installed on the site and the ones available to install, with install, uninstall and upgrade actions, plus a small banner for add-ons that have an update waiting. A search box at the top filters the list as you type. Everything it needs comes from the standard @addons REST API, so there's no extra backend to set up.

Alongside that, the control-panels overview (/controlpanel) was reworked into an icon grid, and the new add-ons view slots into it through the existing /addons entry.

What's in here

  • The add-ons control panel (routes/controlpanelAddons.tsx, loader + action), registered in config/routes.ts
  • The control-panels overview, redesigned as an icon grid (components/ControlPanel/ControlPanelsList.tsx, routes/controlpanels.tsx)
  • Unit tests and a Storybook story
  • Translations for English, German and Italian (cmsui.addons.*)
  • A change-log entry

A couple of notes for reviewers

  • This branch carries two related changes: the add-ons panel and the control-panels overview update. If you'd rather look at them separately, I'm happy to split it into two PRs.
  • The Metropolis font is now imported in the cmsui layer so the page can use it; it wasn't loaded there before.

Contributors

Thanks to @redram404, @veyxos and @richardbenedikt.


  • I signed and returned the Plone Contributor Agreement, and received and accepted an invitation to join a team in the Plone GitHub organization.
  • I verified there aren't other open pull requests for the same change.
  • I followed the guidelines in Contributing to Volto.
  • I succesfully ran code linting checks on my changes locally.
  • I succesfully ran unit tests on my changes locally.
  • I succesfully ran acceptance tests on my changes locally. (not run; no acceptance specs were added for this view, happy to add some if you'd like)
  • If needed, I added new tests for my changes.
  • If needed, I added documentation for my changes, either in the Storybook or narrative documentation.
  • I included a change log entry in my commits.

New /controlpanel/addons route backed by controlpanelAddons.tsx (loader +
action), with unit tests and a Storybook story. Lists installed/available
site add-ons and a searchable marketplace catalog fetched from the backend
@addon-marketplace-search endpoint; the full catalog is always requested.

Also adds cmsui.addons.* locale strings (en/de/it), a zod dependency for
marketplace response validation, and restyles the control-panels overview
as an icon grid.
@richardbenedikt richardbenedikt changed the title Add the add-ons marketplace control panel Add the add-ons control panel Jun 11, 2026
@richardbenedikt richardbenedikt changed the title Add the add-ons control panel Add an add-ons control panel and update the control panels overview Jun 11, 2026
@richardbenedikt richardbenedikt requested a review from pnicolli June 11, 2026 12:40
@richardbenedikt richardbenedikt marked this pull request as ready for review June 12, 2026 08:27
@sneridagh

Copy link
Copy Markdown
Member

@richardbenedikt the /controlpanels route is not wired, right?
Also I miss some acceptance tests, it would be great to have them!

Also, we will need to introduce the "settings" button, decide on the icon (the icon had some controversy in the past) and wire it up.

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.

4 participants