diff --git a/src/lib/components/admin/Settings/Models.svelte b/src/lib/components/admin/Settings/Models.svelte index 96ed282d5..0fa069891 100644 --- a/src/lib/components/admin/Settings/Models.svelte +++ b/src/lib/components/admin/Settings/Models.svelte @@ -29,6 +29,12 @@ import Wrench from '$lib/components/icons/Wrench.svelte'; import ArrowDownTray from '$lib/components/icons/ArrowDownTray.svelte'; import ManageModelsModal from './Models/ManageModelsModal.svelte'; + import ModelMenu from '$lib/components/admin/Settings/Models/ModelMenu.svelte'; + import EllipsisHorizontal from '$lib/components/icons/EllipsisHorizontal.svelte'; + import EyeSlash from '$lib/components/icons/EyeSlash.svelte'; + import Eye from '$lib/components/icons/Eye.svelte'; + + let shiftKey = false; let importFiles; let modelsImportInputElement: HTMLInputElement; @@ -146,8 +152,62 @@ ); }; + const hideModelHandler = async (model) => { + model.meta = { + ...model.meta, + hidden: !(model?.meta?.hidden ?? false) + }; + + console.log(model); + + toast.success( + model.meta.hidden + ? $i18n.t(`Model {{name}} is now hidden`, { + name: model.id + }) + : $i18n.t(`Model {{name}} is now visible`, { + name: model.id + }) + ); + + upsertModelHandler(model); + }; + + const exportModelHandler = async (model) => { + let blob = new Blob([JSON.stringify([model])], { + type: 'application/json' + }); + saveAs(blob, `${model.id}-${Date.now()}.json`); + }; + onMount(async () => { - init(); + await init(); + + const onKeyDown = (event) => { + if (event.key === 'Shift') { + shiftKey = true; + } + }; + + const onKeyUp = (event) => { + if (event.key === 'Shift') { + shiftKey = false; + } + }; + + const onBlur = () => { + shiftKey = false; + }; + + window.addEventListener('keydown', onKeyDown); + window.addEventListener('keyup', onKeyUp); + window.addEventListener('blur-sm', onBlur); + + return () => { + window.removeEventListener('keydown', onKeyDown); + window.removeEventListener('keyup', onKeyUp); + window.removeEventListener('blur-sm', onBlur); + }; }); @@ -211,7 +271,10 @@ {#if models.length > 0} {#each filteredModels as model, modelIdx (model.id)}