From 7607c53bd58de75c9b97ba2c6d581180399c1f67 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 13 Jul 2025 03:23:05 +0400 Subject: [PATCH] feat: folders as projects Co-Authored-By: Classic298 <27028174+Classic298@users.noreply.github.com> --- backend/open_webui/models/folders.py | 4 +- backend/open_webui/routers/folders.py | 2 +- .../Sidebar/Folders/EditFolderModal.svelte | 136 ++++++++++++++++++ .../layout/Sidebar/RecursiveFolder.svelte | 76 +++++----- .../workspace/Models/Knowledge.svelte | 75 ++++++---- .../Models/Knowledge/Selector.svelte | 14 +- 6 files changed, 238 insertions(+), 69 deletions(-) create mode 100644 src/lib/components/layout/Sidebar/Folders/EditFolderModal.svelte diff --git a/backend/open_webui/models/folders.py b/backend/open_webui/models/folders.py index 1df37cc4b0..56ef81f167 100644 --- a/backend/open_webui/models/folders.py +++ b/backend/open_webui/models/folders.py @@ -212,13 +212,13 @@ class FolderTable: .first() ) - if existing_folder: + if existing_folder and existing_folder.id != id: return None folder.name = form_data.get("name", folder.name) if "data" in form_data: folder.data = { - **folder.data, + **(folder.data or {}), **form_data["data"], } diff --git a/backend/open_webui/routers/folders.py b/backend/open_webui/routers/folders.py index 3ed2eb34a9..edc9f85ff2 100644 --- a/backend/open_webui/routers/folders.py +++ b/backend/open_webui/routers/folders.py @@ -120,7 +120,7 @@ async def update_folder_name_by_id( existing_folder = Folders.get_folder_by_parent_id_and_user_id_and_name( folder.parent_id, user.id, form_data.name ) - if existing_folder: + if existing_folder and existing_folder.id != id: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=ERROR_MESSAGES.DEFAULT("Folder already exists"), diff --git a/src/lib/components/layout/Sidebar/Folders/EditFolderModal.svelte b/src/lib/components/layout/Sidebar/Folders/EditFolderModal.svelte new file mode 100644 index 0000000000..8ee7778730 --- /dev/null +++ b/src/lib/components/layout/Sidebar/Folders/EditFolderModal.svelte @@ -0,0 +1,136 @@ + + + +
+
+
+ {$i18n.t('Edit Folder')} +
+ +
+ +
+
+
{ + submitHandler(); + }} + > +
+
{$i18n.t('Folder Name')}
+ +
+ +
+
+ +
+ +
+
{$i18n.t('System Prompt')}
+
+