[PR #20222] [CLOSED] feat: add search bar to admin settings sidebar + global settings search keyboard shortcut #48558

Closed
opened 2026-04-30 00:34:35 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/20222
Author: @silentoplayz
Created: 12/28/2025
Status: Closed

Base: devHead: feat/admin-settings-search-bar


📝 Commits (10+)

  • 032a630 feat: add search bar to admin settings sidebar
  • 3bacaf7 chore: add more search keywords
  • 4e78ed8 feat: Implement Admin and Global Settings Search
  • ee47aa0 style: Polish Global Search UI and shortcuts
  • 01ee6b0 refac: add more keywords to all settings search modals
  • 44354d8 refac: show global settings categories by default
  • cb6ae2a refac
  • b534d1a fix
  • 699ab73 fix: address high priority
  • c22f9dc fix(Settings): remove anonymous event listener to prevent memory leak

📊 Changes

18 files changed (+1128 additions, -1063 deletions)

View changed files

src/lib/components/GlobalSettingsModal.svelte (+181 -0)
📝 src/lib/components/admin/Settings.svelte (+92 -362)
📝 src/lib/components/chat/SettingsModal.svelte (+58 -677)
📝 src/lib/components/chat/ShortcutItem.svelte (+6 -5)
📝 src/lib/components/chat/ShortcutsModal.svelte (+10 -9)
src/lib/components/icons/AdjustmentsHorizontalSolid.svelte (+20 -0)
src/lib/components/icons/BookOpenSolid.svelte (+20 -0)
src/lib/components/icons/ChatBubbleOvalSolid.svelte (+16 -0)
src/lib/components/icons/CloudSolid.svelte (+14 -0)
src/lib/components/icons/CommandLineSolidSmall.svelte (+16 -0)
src/lib/components/icons/DatabaseSolid.svelte (+18 -0)
src/lib/components/icons/HeadphoneSolid.svelte (+17 -0)
src/lib/components/icons/PhotoSolidSmall.svelte (+16 -0)
src/lib/components/icons/SettingsSolid.svelte (+16 -0)
src/lib/constants/settings.ts (+600 -0)
📝 src/lib/shortcuts.ts (+18 -10)
📝 src/lib/stores/index.ts (+3 -0)
📝 src/routes/(app)/+layout.svelte (+7 -0)

📄 Description

Pull Request Checklist

Note to first-time contributors: Please open a discussion post in Discussions to discuss your idea/fix with the community before creating a pull request, and describe your changes before submitting a pull request.

This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR.

Before submitting, make sure you've checked the following:

  • Target branch: Verify that the pull request targets the dev branch. Not targeting the dev branch will lead to immediate closure of the PR.
  • Description: Provide a concise description of the changes made in this pull request down below.
  • Changelog: Ensure a changelog entry following the format of Keep a Changelog is added at the bottom of the PR description.
  • Documentation: If necessary, update relevant documentation Open WebUI Docs like environment variables, the tutorials, or other documentation sources.
  • Dependencies: Are there any new dependencies? Have you updated the dependency versions in the documentation?
  • Testing: Perform manual tests to verify the implemented fix/feature works as intended AND does not break any other functionality. Take this as an opportunity to make screenshots of the feature/fix and include it in the PR description.
  • Agentic AI Code: Confirm this Pull Request is not written by any AI Agent or has at least gone through additional human review AND manual testing. If any AI Agent is the co-author of this PR, it may lead to immediate closure of the PR.
  • Code review: Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards?
  • Title Prefix: To clearly categorize this pull request, prefix the pull request title using one of the following:
    • feat: Introduces a new feature or enhancement to the codebase

Changelog Entry

Description

This PR introduces comprehensive search functionality for Open WebUI settings and refactors the settings architecture to use a centralized configuration. It implements a local search bar within the Admin Settings sidebar, a new Global Settings Search (Command Palette) accessible via Cmd+Shift+F, and unifies the settings definitions into a single source of truth to eliminate code duplication and ensure consistency.

Added

  • Centralized Settings Configuration: Created src/lib/constants/settings.ts as the single source of truth for all Admin and User settings, including IDs, titles, routes, keywords, and icons.
  • Admin Settings Search: Added a search bar to the Admin Settings sidebar to filter settings tabs.
  • Global Settings Search: Implemented a "Spotlight"-style global search modal (GlobalSettingsModal.svelte) triggered by Cmd+Shift+F (or Ctrl+Shift+F).
  • Solid Icons: Introduced a set of "Solid" style icons (e.g., SettingsSolid, CloudSolid, DatabaseSolid) to ensure visual consistency with the original Admin interface design.
  • Keyboard Shortcut: Added SEARCH_SETTINGS shortcut to shortcuts.ts and ShortcutsModal.svelte.

Changed

  • Refactored Settings Components: Updated GlobalSettingsModal.svelte, chat/SettingsModal.svelte, and admin/Settings.svelte to dynamically render settings tabs from the centralized configuration.
  • Refactored Admin Sidebar: Converted the hardcoded Admin Settings sidebar into a completely data-driven component, consuming ADMIN_SETTINGS from the centralized config.
  • Enhanced Keywords: Enriched and unified search keywords for all Admin and User setting categories in settings.ts to improve search relevance across the board.
  • User Settings Modal: Updated logic to support programmatic tab selection via a new activeSettingsTab store, and replaced hardcoded tab logic with dynamic rendering.
  • Visual Consistency: Restored the original "Solid" icon style for the Admin Settings sidebar while maintaining the new data-driven architecture.

Additional Information

The Global Search modal is accessible via Cmd+Shift+F and intelligently routes users:

  • Selecting an Admin setting navigates directly to the corresponding route (e.g., /admin/settings/general).
  • Selecting a User setting opens the User Settings modal and automatically selects the correct tab.

Screenshots or Videos

image

Global Settings Search Modal

image

Keyboard Shortcuts Modal Addition

image

Contributor License Agreement

By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.

Note

Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/20222 **Author:** [@silentoplayz](https://github.com/silentoplayz) **Created:** 12/28/2025 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `feat/admin-settings-search-bar` --- ### 📝 Commits (10+) - [`032a630`](https://github.com/open-webui/open-webui/commit/032a63054c629fecc146ae799f0aa3c07fe546e0) feat: add search bar to admin settings sidebar - [`3bacaf7`](https://github.com/open-webui/open-webui/commit/3bacaf71129206233a4eb363e6ed9deddff50c2c) chore: add more search keywords - [`4e78ed8`](https://github.com/open-webui/open-webui/commit/4e78ed8e4490207b1a98a2aa009f88305fae9dd2) feat: Implement Admin and Global Settings Search - [`ee47aa0`](https://github.com/open-webui/open-webui/commit/ee47aa08d05a872d379fa97c022a1145e15f0cfd) style: Polish Global Search UI and shortcuts - [`01ee6b0`](https://github.com/open-webui/open-webui/commit/01ee6b07ea3f5d85ec4d00c9b40b21846a87fa5f) refac: add more keywords to all settings search modals - [`44354d8`](https://github.com/open-webui/open-webui/commit/44354d8d697c28282329ea65d3ef009f7a8f2f03) refac: show global settings categories by default - [`cb6ae2a`](https://github.com/open-webui/open-webui/commit/cb6ae2aa8a715dae568fb72a6ce7957e4317a2ea) refac - [`b534d1a`](https://github.com/open-webui/open-webui/commit/b534d1a1d181dcd2c67d2cbb1ebdce9864cb1183) fix - [`699ab73`](https://github.com/open-webui/open-webui/commit/699ab7333558f79a3294d7cbaea655b759c42fb3) fix: address high priority - [`c22f9dc`](https://github.com/open-webui/open-webui/commit/c22f9dc8cd561b19ebd86b5c6b4eeaca4cdcb111) fix(Settings): remove anonymous event listener to prevent memory leak ### 📊 Changes **18 files changed** (+1128 additions, -1063 deletions) <details> <summary>View changed files</summary> ➕ `src/lib/components/GlobalSettingsModal.svelte` (+181 -0) 📝 `src/lib/components/admin/Settings.svelte` (+92 -362) 📝 `src/lib/components/chat/SettingsModal.svelte` (+58 -677) 📝 `src/lib/components/chat/ShortcutItem.svelte` (+6 -5) 📝 `src/lib/components/chat/ShortcutsModal.svelte` (+10 -9) ➕ `src/lib/components/icons/AdjustmentsHorizontalSolid.svelte` (+20 -0) ➕ `src/lib/components/icons/BookOpenSolid.svelte` (+20 -0) ➕ `src/lib/components/icons/ChatBubbleOvalSolid.svelte` (+16 -0) ➕ `src/lib/components/icons/CloudSolid.svelte` (+14 -0) ➕ `src/lib/components/icons/CommandLineSolidSmall.svelte` (+16 -0) ➕ `src/lib/components/icons/DatabaseSolid.svelte` (+18 -0) ➕ `src/lib/components/icons/HeadphoneSolid.svelte` (+17 -0) ➕ `src/lib/components/icons/PhotoSolidSmall.svelte` (+16 -0) ➕ `src/lib/components/icons/SettingsSolid.svelte` (+16 -0) ➕ `src/lib/constants/settings.ts` (+600 -0) 📝 `src/lib/shortcuts.ts` (+18 -10) 📝 `src/lib/stores/index.ts` (+3 -0) 📝 `src/routes/(app)/+layout.svelte` (+7 -0) </details> ### 📄 Description # Pull Request Checklist ### Note to first-time contributors: Please open a discussion post in [Discussions](https://github.com/open-webui/open-webui/discussions) to discuss your idea/fix with the community before creating a pull request, and describe your changes before submitting a pull request. This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR. **Before submitting, make sure you've checked the following:** - [x] **Target branch:** Verify that the pull request targets the `dev` branch. **Not targeting the `dev` branch will lead to immediate closure of the PR.** - [x] **Description:** Provide a concise description of the changes made in this pull request down below. - [x] **Changelog:** Ensure a changelog entry following the format of [Keep a Changelog](https://keepachangelog.com/) is added at the bottom of the PR description. - [x] **Documentation:** If necessary, update relevant documentation [Open WebUI Docs](https://github.com/open-webui/docs) like environment variables, the tutorials, or other documentation sources. - [x] **Dependencies:** Are there any new dependencies? Have you updated the dependency versions in the documentation? - [x] **Testing:** Perform manual tests to **verify the implemented fix/feature works as intended AND does not break any other functionality**. Take this as an opportunity to **make screenshots of the feature/fix and include it in the PR description**. - [x] **Agentic AI Code:** Confirm this Pull Request is **not written by any AI Agent** or has at least **gone through additional human review AND manual testing**. If any AI Agent is the co-author of this PR, it may lead to immediate closure of the PR. - [x] **Code review:** Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards? - [x] **Title Prefix:** To clearly categorize this pull request, prefix the pull request title using one of the following: - **feat**: Introduces a new feature or enhancement to the codebase # Changelog Entry ### Description This PR introduces comprehensive search functionality for Open WebUI settings and **refactors the settings architecture to use a centralized configuration**. It implements a local search bar within the Admin Settings sidebar, a new Global Settings Search (Command Palette) accessible via `Cmd+Shift+F`, and unifies the settings definitions into a single source of truth to eliminate code duplication and ensure consistency. ### Added - **Centralized Settings Configuration**: Created [`src/lib/constants/settings.ts`](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/constants/settings.ts:0:0-0:0) as the single source of truth for all Admin and User settings, including IDs, titles, routes, keywords, and icons. - **Admin Settings Search**: Added a search bar to the Admin Settings sidebar to filter settings tabs. - **Global Settings Search**: Implemented a "Spotlight"-style global search modal ([GlobalSettingsModal.svelte](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/components/GlobalSettingsModal.svelte:0:0-0:0)) triggered by `Cmd+Shift+F` (or `Ctrl+Shift+F`). - **Solid Icons**: Introduced a set of "Solid" style icons (e.g., `SettingsSolid`, `CloudSolid`, `DatabaseSolid`) to ensure visual consistency with the original Admin interface design. - **Keyboard Shortcut**: Added `SEARCH_SETTINGS` shortcut to [shortcuts.ts](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/shortcuts.ts:0:0-0:0) and [ShortcutsModal.svelte](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/components/chat/ShortcutsModal.svelte:0:0-0:0). ### Changed - **Refactored Settings Components**: Updated [GlobalSettingsModal.svelte](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/components/GlobalSettingsModal.svelte:0:0-0:0), [chat/SettingsModal.svelte](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/components/chat/SettingsModal.svelte:0:0-0:0), and [admin/Settings.svelte](cci:7://file:///home/g30/docker-projects/open-webui-dev/src/lib/components/admin/Settings.svelte:0:0-0:0) to dynamically render settings tabs from the centralized configuration. - **Refactored Admin Sidebar**: Converted the hardcoded Admin Settings sidebar into a completely data-driven component, consuming `ADMIN_SETTINGS` from the centralized config. - **Enhanced Keywords**: Enriched and unified search keywords for all Admin and User setting categories in `settings.ts` to improve search relevance across the board. - **User Settings Modal**: Updated logic to support programmatic tab selection via a new `activeSettingsTab` store, and replaced hardcoded tab logic with dynamic rendering. - **Visual Consistency**: Restored the original "Solid" icon style for the Admin Settings sidebar while maintaining the new data-driven architecture. --- ### Additional Information The Global Search modal is accessible via `Cmd+Shift+F` and intelligently routes users: - Selecting an **Admin** setting navigates directly to the corresponding route (e.g., `/admin/settings/general`). - Selecting a **User** setting opens the User Settings modal and automatically selects the correct tab. ### Screenshots or Videos ### Local Admin Settings Search Bar <img width="938" height="508" alt="image" src="https://github.com/user-attachments/assets/2ac97b70-2616-4f7f-9313-5441d8a0b61f" /> ### Global Settings Search Modal <img width="2557" height="1280" alt="image" src="https://github.com/user-attachments/assets/7b9cf729-cae0-4c89-9247-b950b59f2db8" /> ### Keyboard Shortcuts Modal Addition <img width="687" height="603" alt="image" src="https://github.com/user-attachments/assets/33325c49-60bf-4633-82ec-d81a3193b90e" /> ### Contributor License Agreement By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. > [!NOTE] > Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-30 00:34:35 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#48558