diff --git a/src/lib/components/admin/Settings/Models.svelte b/src/lib/components/admin/Settings/Models.svelte index 9270db5c6c..ef44933fd7 100644 --- a/src/lib/components/admin/Settings/Models.svelte +++ b/src/lib/components/admin/Settings/Models.svelte @@ -28,6 +28,7 @@ import ModelEditor from '$lib/components/workspace/Models/ModelEditor.svelte'; import { toast } from 'svelte-sonner'; + import Badge from '$lib/components/common/Badge.svelte'; import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; import Cog6 from '$lib/components/icons/Cog6.svelte'; import ConfigureModelsModal from './Models/ConfigureModelsModal.svelte'; @@ -322,6 +323,69 @@
+ {#if $user?.role === 'admin'} + { + if (importFiles.length > 0) { + const reader = new FileReader(); + reader.onload = async (event) => { + modelsImportInProgress = true; + + try { + const models = JSON.parse(String(event.target.result)); + const res = await importModels(localStorage.token, models); + + if (res) { + toast.success($i18n.t('Models imported successfully')); + await init(); + } else { + toast.error($i18n.t('Failed to import models')); + } + } catch (e) { + toast.error(e?.detail ?? $i18n.t('Invalid JSON file')); + console.error(e); + } + + modelsImportInProgress = false; + }; + reader.readAsText(importFiles[0]); + } + }} + /> + + + + + {/if} + - - -
- - {/if} {:else}