From 372e47863649a723cc3e2bdbbc362f6e02aa8aec Mon Sep 17 00:00:00 2001 From: Jody Doolittle Date: Wed, 9 Jul 2025 23:19:21 -0700 Subject: [PATCH] UI touchups --- .../modals/OllamaInstallModal.svelte | 134 ++++++++++++++++++ .../ollamaManager/OllamaSettingsTab.svelte | 29 +++- .../components/sidebars/OllamaSidebar.svelte | 47 ++++-- .../sidebars/SettingsSidebar.svelte | 18 +++ 4 files changed, 215 insertions(+), 13 deletions(-) create mode 100644 src/lib/client/components/modals/OllamaInstallModal.svelte diff --git a/src/lib/client/components/modals/OllamaInstallModal.svelte b/src/lib/client/components/modals/OllamaInstallModal.svelte new file mode 100644 index 0000000..220c31c --- /dev/null +++ b/src/lib/client/components/modals/OllamaInstallModal.svelte @@ -0,0 +1,134 @@ + + + { + if (!e.open) { + onclose() + } + }} + contentBase="card bg-surface-100-900 p-4 space-y-4 shadow-xl w-[30em] max-w-dvw-lg border border-surface-300-700" + backdropClasses="backdrop-blur-sm" +> + {#snippet content()} +
+
+
+ +
+

Install Model

+
+

+ Enter the model name to download. You can use formats like "ollama pull model", "ollama run model", or just "model". +

+
+ +
+
+ + +
+ + {#if inputValue.trim()} +
+
+ Will install: +
+
+ {cleanModelName(inputValue)} +
+
+ {/if} +
+ +
+ + +
+ {/snippet} +
diff --git a/src/lib/client/components/ollamaManager/OllamaSettingsTab.svelte b/src/lib/client/components/ollamaManager/OllamaSettingsTab.svelte index f54b35a..9b53f96 100644 --- a/src/lib/client/components/ollamaManager/OllamaSettingsTab.svelte +++ b/src/lib/client/components/ollamaManager/OllamaSettingsTab.svelte @@ -3,6 +3,7 @@ import { toaster } from "$lib/client/utils/toaster" import * as skio from "sveltekit-io" import { onMount, onDestroy, getContext } from "svelte" + import OllamaIcon from "../icons/OllamaIcon.svelte" interface OllamaModel { name: string @@ -21,10 +22,8 @@ let currentVersion = $state("") let updateAvailable = $state(false) let latestVersion = $state("") - let isConnected = $state(true) let isCheckingUpdates = $state(false) let isSavingBaseUrl = $state(false) - let installedModels: OllamaModel[] = $state([]) let showDeleteModal = $state(false) let modelToDelete: OllamaModel | null = $state(null) let baseUrlField = $state("") @@ -158,6 +157,32 @@
+
+ + Ollama + + +
{:else if !isConnected} -
-
+
+
- +

Connect to Ollama

- Enter your Ollama server URL to get started. + Connect to your Ollama server to manage AI models locally.

+ +
+
+ +
+

+ Don't have Ollama installed? +

+

+ Download and install Ollama to run AI models locally on your machine. It's easy! +

+ + + Download Ollama + +
+
+
+ +