Skip to content

feat: Admin Settings Models: Global Unhide/Hide control#21838

Closed
pljones wants to merge 1 commit intoopen-webui:devfrom
pljones:21732-2/UnhideHide-All-control
Closed

feat: Admin Settings Models: Global Unhide/Hide control#21838
pljones wants to merge 1 commit intoopen-webui:devfrom
pljones:21732-2/UnhideHide-All-control

Conversation

@pljones
Copy link
Contributor

@pljones pljones commented Feb 24, 2026

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. PRs targeting main will be immediately closed.
  • 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: Add docs in Open WebUI Docs Repository. Document user-facing behavior, environment variables, public APIs/interfaces, or deployment steps. N/A
  • Dependencies: Are there any new or upgraded dependencies? If so, explain why, update the changelog/docs, and include any compatibility notes. Actually run the code/function that uses updated library to ensure it doesn't crash. N/A
  • Testing: Perform manual tests to verify the implemented fix/feature works as intended AND does not break any other functionality. Include reproducible steps to demonstrate the issue before the fix. Test edge cases (URL encoding, HTML entities, types). Take this as an opportunity to make screenshots of the feature/fix and include them in the PR description.
    • Browser developer network monitor used to verify the requests against the existing single model unhide/hide request.
  • 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.
    • No Agentic AI Code or development support.
  • 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?
  • Design & Architecture: Prefer smart defaults over adding new settings; use local state for ephemeral UI logic. Open a Discussion for major architectural or UX changes. N/A
  • Git Hygiene: Keep PRs atomic (one logical change). Clean up commits and rebase on dev to ensure no unrelated commits (e.g. from main) are included. Push updates to the existing PR branch instead of closing and reopening.
  • Title Prefix: To clearly categorize this pull request, prefix the pull request title using one of the following:
    • BREAKING CHANGE: Significant changes that may affect compatibility
    • build: Changes that affect the build system or external dependencies
    • ci: Changes to our continuous integration processes or workflows
    • chore: Refactor, cleanup, or other non-functional code changes
    • docs: Documentation update or addition
    • feat: Introduces a new feature or enhancement to the codebase
    • fix: Bug fix or error correction
    • i18n: Internationalization or localization changes
    • perf: Performance improvement
    • refactor: Code restructuring for better maintainability, readability, or scalability
    • style: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc.)
    • test: Adding missing tests or correcting existing tests
    • WIP: Work in progress, a temporary label for incomplete or ongoing work

Changelog Entry

Description

The current Admin Settings Models page:

  • allows filtering by Enabled/Disabled state and toggling Enabled/Disabled state for individual models or for all models
  • allows filtering by Visible/Hidden and toggling Visible/Hidden state for individual models but not for all models

This PR provides an additional options on the "..." Actions menu for Unhiding or Hiding all models. This shortcut allows administrators to make rapid changes to the visible models (hiding everything, then individually making models visible is the most likely use case).

Related to #21732.

Added

  • Additional Admin Settings Models page Actions menu items to Unhide or Hide all models

Changed

  • None

Deprecated

  • None

Removed

  • None

Fixed

  • None

Security

  • None

Breaking Changes

  • BREAKING CHANGE: None

Additional Information

  • I'm planning to do the same for Public/Private state, so all three attributes can be filtered on and globally toggled.

Screenshots or Videos

  • Before
    image

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

@pr-validator-bot
Copy link

👋 Welcome and Thank You for Contributing!

We appreciate you taking the time to submit a pull request to Open WebUI!

⚠️ Important: Testing Requirements

We've recently seen an increase in PRs that have significant issues:

  • PRs that don't actually fix the bug they claim to fix
  • PRs that don't implement the feature they describe
  • PRs that break existing functionality
  • PRs that are clearly AI-generated without proper testing being done by the author
  • PRs that simply don't work as intended

These untested PRs consume significant time from maintainers and volunteer contributors who review and test PRs in their free time.
Time that could be spent testing other PRs or improving Open WebUI in other ways.

Before marking your PR as "Ready for Review":

Please explicitly confirm:

  1. ✅ You have personally tested ALL changes in this PR
  2. How you tested it (specific steps you took to verify it works)
  3. Visual evidence where applicable (screenshots or videos showing the feature/fix working) - if applicable to your specific PR

If you're not certain your PR works exactly as intended, please leave it in DRAFT mode until you've thoroughly tested it.

Thank you for helping us maintain quality and respecting the time of our community! 🙏

@pljones
Copy link
Contributor Author

pljones commented Feb 24, 2026

One thing I'd like feedback on is the choice of icon. I couldn't see anything in the list that appealed more.

(I'll use 🔓 and 🔒 for the Public / Private toggles.)

@pljones pljones force-pushed the 21732-2/UnhideHide-All-control branch from 53b04be to 472a237 Compare February 24, 2026 20:54
@pljones
Copy link
Contributor Author

pljones commented Feb 24, 2026

I don't understand what "Format & Build Frontend" is comparing or what it's saying is wrong.

@Classic298
Copy link
Collaborator

@pljones dont worry about them

@tjbck
Copy link
Contributor

tjbck commented Feb 24, 2026

62e7e0b

@tjbck tjbck closed this Feb 24, 2026
@pljones
Copy link
Contributor Author

pljones commented Feb 26, 2026

Makes sense! 👍🏻

@pljones pljones deleted the 21732-2/UnhideHide-All-control branch February 26, 2026 17:48
@pljones
Copy link
Contributor Author

pljones commented Feb 26, 2026

Although... this method causes a flood of "Model updated" toasts. So maybe that could be tuned? Just a single toast success if they all work? (upsertModelHandler does a toast each call - line 190. The existing enable / disable all don't toast at all.)

@pljones pljones restored the 21732-2/UnhideHide-All-control branch February 26, 2026 18:16
@pljones
Copy link
Contributor Author

pljones commented Feb 26, 2026

pljones@0b79b25
This fixes the badge flooding. It's starting to look like it needs to be refactored:

  • pass the filter function
  • pass the UI update function
  • pass the Server update function
  • pass the success toast

The rest is boilerplate.

@pljones
Copy link
Contributor Author

pljones commented Feb 26, 2026

pljones@8f74057
Here's the refactored version.

@pljones
Copy link
Contributor Author

pljones commented Feb 26, 2026

pljones@4ea5cdf
Currently when you hide or show a single model, you get two toasts: one from hideModelHandler and one from upsertModelHandler. This patch prevents that (removing the call to upsertModelHandler from hideModelHandler).

(Maybe hideModelHandler could use the new batch update handler...)

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