Skip to content

Searchsetting-like-macos#7841

Open
Manik-Khajuria-5 wants to merge 3 commits intoplone:mainfrom
Manik-Khajuria-5:Searchbar-like-macos
Open

Searchsetting-like-macos#7841
Manik-Khajuria-5 wants to merge 3 commits intoplone:mainfrom
Manik-Khajuria-5:Searchbar-like-macos

Conversation

@Manik-Khajuria-5
Copy link
Contributor

@Manik-Khajuria-5 Manik-Khajuria-5 commented Feb 1, 2026


Issue

Contributes to #7259


What this PR does

This PR adds an implementation of a global search for Control Panel settings, extending search beyond just control panel names.

Technical approach

The Control Panel overview currently exposes only high-level metadata (title, group, @id).
To enable searching inside control panels, this PR introduces the following approach:

  • Lazily triggers schema fetching when the user starts typing

  • Fetches control panel schemas in parallel

  • Builds a search index using:

    • Control panel titles
    • Field names from schema.fieldsets[].fields
    • Field metadata from schema.properties[fieldName].title and description
  • Matches the user’s query against this indexed data

  • Maps matched results back to their parent control panel for navigation

Fetched schemas are cached to avoid repeated backend requests and to reduce unnecessary backend load.


screenrecording-2026-02-01_14-12-13.mp4

screenshot-2026-01-19_20-03-38 screenshot-2026-01-19_19-59-52

Closes #7259


Copy link
Member

@davisagli davisagli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little worried about the performance of fetching all control panel schemas in parallel.

There are also control panels which are not schema-based.

I was thinking we could change the controlpanels service in plone.restapi so that each controlpanel has a function where it can return its searchable text. That way schema-based control panels can return text from the schema, and other control panels can return other text. This would also let volto get all of the text with one request. What do you think?

@Manik-Khajuria-5
Copy link
Contributor Author

Manik-Khajuria-5 commented Feb 2, 2026

@davisagli I think this is a great approach. Instead of making a lot of API calls we could make some changes in plone.restapi and replace them with a single request. I’ll try to implement this as soon as possible.

@Manik-Khajuria-5
Copy link
Contributor Author

@davisagli Should I create a separate PR in plone.restapi to implement this approach first, and once it gets merged, update Volto accordingly to align with the final implementation?

@davisagli
Copy link
Member

@Manik-Khajuria-5 Yes. If possible, the implementation in Volto should degrade gracefully in case it is used with an older version of plone.restapi. (i.e., if the @ControlPanels service didn't return searchable text for the control panels, don't show the search box)

@Manik-Khajuria-5
Copy link
Contributor Author

@davisagli okk got it ,working on it

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.

Search the control panel to find a setting

2 participants