From dc78d2f7586ec2681ca56a5a6b387dea6836a6b6 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 8 Mar 2025 18:06:08 +0000 Subject: [PATCH 01/12] Update bug_report.yaml --- .github/ISSUE_TEMPLATE/bug_report.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 171a82ca8..d69a64263 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -27,6 +27,8 @@ body: options: - label: I have searched the existing issues and discussions. required: true + - label: I am using the latest version of Open WebUI. + required: true - type: dropdown id: installation-method From 67cd4f2ab101662cf124fcb4ef45293245bebec0 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 8 Mar 2025 18:08:51 +0000 Subject: [PATCH 02/12] Create config.yaml --- .github/ISSUE_TEMPLATE/config.yaml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/ISSUE_TEMPLATE/config.yaml diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yaml new file mode 100644 index 000000000..3ba13e0ce --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yaml @@ -0,0 +1 @@ +blank_issues_enabled: false From d7bfa395b0672a21a41fb6706a4275673d339762 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 8 Mar 2025 18:10:34 +0000 Subject: [PATCH 03/12] refac --- .github/ISSUE_TEMPLATE/{config.yaml => config.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{config.yaml => config.yml} (100%) diff --git a/.github/ISSUE_TEMPLATE/config.yaml b/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/config.yaml rename to .github/ISSUE_TEMPLATE/config.yml From b03fc97e287f31ad07bda896143959bc4413f7d2 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 8 Mar 2025 18:13:28 +0000 Subject: [PATCH 04/12] Update bug_report.yaml --- .github/ISSUE_TEMPLATE/bug_report.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index d69a64263..feecd16c7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -85,9 +85,9 @@ body: required: true - label: I am using the latest version of **both** Open WebUI and Ollama. required: true - - label: I have checked the browser console logs. + - label: I have included the browser console logs. required: true - - label: I have checked the Docker container logs. + - label: I have included the Docker container logs. required: true - label: I have listed steps to reproduce the bug in detail. required: true @@ -112,7 +112,7 @@ body: id: reproduction-steps attributes: label: Steps to Reproduce - description: Provide step-by-step instructions to reproduce the issue. + description: Providing clear, step-by-step instructions helps us reproduce and fix the issue faster. If we can't reproduce it, we can't fix it. placeholder: | 1. Go to '...' 2. Click on '...' From d669932137c89f240271966884ee1d61597023e7 Mon Sep 17 00:00:00 2001 From: Silentoplayz <50341825+Silentoplayz@users.noreply.github.com> Date: Sat, 8 Mar 2025 13:42:24 -0500 Subject: [PATCH 05/12] add confirmation prompts --- .../Settings/Connections/OllamaConnection.svelte | 14 +++++++++++++- .../Settings/Connections/OpenAIConnection.svelte | 13 ++++++++++++- .../Settings/Evaluations/ArenaModelModal.svelte | 13 +++++++++++-- .../admin/Users/UserList/UserChatsModal.svelte | 16 +++++++++++++++- .../chat/Settings/Connections/Connection.svelte | 14 +++++++++++++- 5 files changed, 64 insertions(+), 6 deletions(-) diff --git a/src/lib/components/admin/Settings/Connections/OllamaConnection.svelte b/src/lib/components/admin/Settings/Connections/OllamaConnection.svelte index a3e693105..48976f076 100644 --- a/src/lib/components/admin/Settings/Connections/OllamaConnection.svelte +++ b/src/lib/components/admin/Settings/Connections/OllamaConnection.svelte @@ -5,6 +5,7 @@ import Tooltip from '$lib/components/common/Tooltip.svelte'; import SensitiveInput from '$lib/components/common/SensitiveInput.svelte'; import AddConnectionModal from '$lib/components/AddConnectionModal.svelte'; + import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; import Cog6 from '$lib/components/icons/Cog6.svelte'; import Wrench from '$lib/components/icons/Wrench.svelte'; @@ -20,6 +21,7 @@ let showManageModal = false; let showConfigModal = false; + let showDeleteConfirmDialog = false; { + showDeleteConfirmDialog = true; + }} onSubmit={(connection) => { url = connection.url; config = { ...connection.config, key: connection.key }; @@ -39,6 +43,14 @@ }} /> + { + onDelete(); + showConfigModal = false; + }} +/> +
diff --git a/src/lib/components/admin/Settings/Connections/OpenAIConnection.svelte b/src/lib/components/admin/Settings/Connections/OpenAIConnection.svelte index 6be4a0c90..04769e6f6 100644 --- a/src/lib/components/admin/Settings/Connections/OpenAIConnection.svelte +++ b/src/lib/components/admin/Settings/Connections/OpenAIConnection.svelte @@ -6,6 +6,7 @@ import SensitiveInput from '$lib/components/common/SensitiveInput.svelte'; import Cog6 from '$lib/components/icons/Cog6.svelte'; import AddConnectionModal from '$lib/components/AddConnectionModal.svelte'; + import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; import { connect } from 'socket.io-client'; @@ -19,8 +20,16 @@ export let config = {}; let showConfigModal = false; + let showDeleteConfirmDialog = false; + { + onDelete(); + }} +/> + { + showDeleteConfirmDialog = true; + }} onSubmit={(connection) => { url = connection.url; key = connection.key; diff --git a/src/lib/components/admin/Settings/Evaluations/ArenaModelModal.svelte b/src/lib/components/admin/Settings/Evaluations/ArenaModelModal.svelte index 8dd898b1a..08bc0c2a1 100644 --- a/src/lib/components/admin/Settings/Evaluations/ArenaModelModal.svelte +++ b/src/lib/components/admin/Settings/Evaluations/ArenaModelModal.svelte @@ -10,6 +10,7 @@ import PencilSolid from '$lib/components/icons/PencilSolid.svelte'; import { toast } from 'svelte-sonner'; import AccessControl from '$lib/components/workspace/common/AccessControl.svelte'; + import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; export let show = false; export let edit = false; @@ -44,6 +45,7 @@ let imageInputElement; let loading = false; + let showDeleteConfirmDialog = false; const addModelHandler = () => { if (selectedModelId) { @@ -115,6 +117,14 @@ }); + { + dispatch('delete', model); + show = false; + }} +/> +
@@ -378,8 +388,7 @@ class="px-3.5 py-1.5 text-sm font-medium dark:bg-black dark:hover:bg-gray-950 dark:text-white bg-white text-black hover:bg-gray-100 transition rounded-full flex flex-row space-x-1 items-center" type="button" on:click={() => { - dispatch('delete', model); - show = false; + showDeleteConfirmDialog = true; }} > {$i18n.t('Delete')} diff --git a/src/lib/components/admin/Users/UserList/UserChatsModal.svelte b/src/lib/components/admin/Users/UserList/UserChatsModal.svelte index a5248d9bb..ca9edd261 100644 --- a/src/lib/components/admin/Users/UserList/UserChatsModal.svelte +++ b/src/lib/components/admin/Users/UserList/UserChatsModal.svelte @@ -12,6 +12,7 @@ import Modal from '$lib/components/common/Modal.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte'; import Spinner from '$lib/components/common/Spinner.svelte'; + import ConfirmDialog from '$lib/components/common/ConfirmDialog.svelte'; const i18n = getContext('i18n'); @@ -19,6 +20,8 @@ export let user; let chats = null; + let showDeleteConfirmDialog = false; + let chatToDelete = null; const deleteChatHandler = async (chatId) => { const res = await deleteChatById(localStorage.token, chatId).catch((error) => { @@ -50,6 +53,16 @@ } + { + if (chatToDelete) { + deleteChatHandler(chatToDelete); + chatToDelete = null; + } + }} +/> +
@@ -142,7 +155,8 @@
- {#if $user.role === 'admin' || $user?.permissions.chat?.controls} -
- {#if chatFiles.length > 0} - -
- {#each chatFiles as file, fileIdx} - { - // Remove the file from the chatFiles array +
+ {#if chatFiles.length > 0} + +
+ {#each chatFiles as file, fileIdx} + { + // Remove the file from the chatFiles array - chatFiles.splice(fileIdx, 1); - chatFiles = chatFiles; - }} - on:click={() => { - console.log(file); - }} - /> - {/each} -
-
- -
- {/if} - - -
- + chatFiles.splice(fileIdx, 1); + chatFiles = chatFiles; + }} + on:click={() => { + console.log(file); + }} + /> + {/each}

+ {/if} + + +
+ +
+
+ + {#if $user.role === 'admin' || $user?.permissions.chat?.controls} +
@@ -90,10 +90,6 @@
-
- {:else} -
- {$i18n.t('You do not have permission to access this feature.')} -
- {/if} + {/if} +
diff --git a/src/lib/components/chat/ModelSelector/Selector.svelte b/src/lib/components/chat/ModelSelector/Selector.svelte index 46710787d..4ac937121 100644 --- a/src/lib/components/chat/ModelSelector/Selector.svelte +++ b/src/lib/components/chat/ModelSelector/Selector.svelte @@ -350,7 +350,7 @@ selectedTag = ''; }} > - {$i18n.t('Ollama')} + {$i18n.t('Local')} + + {#each tags as tag} diff --git a/src/lib/components/chat/Navbar.svelte b/src/lib/components/chat/Navbar.svelte index 5040cdd90..890d2369b 100644 --- a/src/lib/components/chat/Navbar.svelte +++ b/src/lib/components/chat/Navbar.svelte @@ -130,21 +130,19 @@ {/if} - {#if !$mobile && ($user.role === 'admin' || $user?.permissions?.chat?.controls)} - - - - {/if} + + +