diff --git a/src/lib/components/admin/Settings/Models.svelte b/src/lib/components/admin/Settings/Models.svelte
index 56ef8ce4f7..1318e9e063 100644
--- a/src/lib/components/admin/Settings/Models.svelte
+++ b/src/lib/components/admin/Settings/Models.svelte
@@ -39,6 +39,8 @@
import EllipsisHorizontal from '$lib/components/icons/EllipsisHorizontal.svelte';
import EyeSlash from '$lib/components/icons/EyeSlash.svelte';
import Eye from '$lib/components/icons/Eye.svelte';
+ import CheckCircle from '$lib/components/icons/CheckCircle.svelte';
+ import Minus from '$lib/components/icons/Minus.svelte';
import { WEBUI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants';
import { goto } from '$app/navigation';
import { DropdownMenu } from 'bits-ui';
@@ -121,6 +123,28 @@
);
};
+ const showAllHandler = async () => {
+ const modelsToShow = filteredModels.filter((m) => m?.meta?.hidden === true);
+ // Optimistic UI update
+ modelsToShow.forEach((m) => {
+ m.meta = { ...m.meta, hidden: false };
+ });
+ models = models;
+ // Sync with server
+ await Promise.all(modelsToShow.map((model) => upsertModelHandler(model)));
+ };
+
+ const hideAllHandler = async () => {
+ const modelsToHide = filteredModels.filter((m) => !(m?.meta?.hidden ?? false));
+ // Optimistic UI update
+ modelsToHide.forEach((m) => {
+ m.meta = { ...m.meta, hidden: true };
+ });
+ models = models;
+ // Sync with server
+ await Promise.all(modelsToHide.map((model) => upsertModelHandler(model)));
+ };
+
const downloadModels = async (models) => {
let blob = new Blob([JSON.stringify(models)], {
type: 'application/json'
@@ -485,7 +509,7 @@
enableAllHandler();
}}
>
-