From d8a30bd6ae5cb6d74f66dc466dbe93c52da13cfa Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Mon, 14 Oct 2024 21:21:45 -0700 Subject: [PATCH] refac: sidebar tag add behaviour --- backend/open_webui/apps/webui/models/chats.py | 16 +++++++++++----- src/lib/components/chat/Tags.svelte | 5 ++++- src/lib/components/layout/Sidebar.svelte | 5 ++++- .../components/layout/Sidebar/ChatMenu.svelte | 7 +++++++ 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/backend/open_webui/apps/webui/models/chats.py b/backend/open_webui/apps/webui/models/chats.py index 473cf964c..33cab3f18 100644 --- a/backend/open_webui/apps/webui/models/chats.py +++ b/backend/open_webui/apps/webui/models/chats.py @@ -257,11 +257,15 @@ class ChatTable: query = db.query(Chat).filter_by(user_id=user_id) if not include_archived: query = query.filter_by(archived=False) - all_chats = ( - query.order_by(Chat.updated_at.desc()) - # .limit(limit).offset(skip) - .all() - ) + + query = query.order_by(Chat.updated_at.desc()) + + if skip: + query = query.offset(skip) + if limit: + query = query.limit(limit) + + all_chats = query.all() return [ChatModel.model_validate(chat) for chat in all_chats] def get_chat_title_id_list_by_user_id( @@ -500,6 +504,8 @@ class ChatTable: # Perform pagination at the SQL level all_chats = query.offset(skip).limit(limit).all() + print(len(all_chats)) + # Validate and return chats return [ChatModel.model_validate(chat) for chat in all_chats] diff --git a/src/lib/components/chat/Tags.svelte b/src/lib/components/chat/Tags.svelte index 7c5a0c0c1..1ce3bc658 100644 --- a/src/lib/components/chat/Tags.svelte +++ b/src/lib/components/chat/Tags.svelte @@ -37,7 +37,10 @@ tags: tags }); - _tags.set(await getAllChatTags(localStorage.token)); + await _tags.set(await getAllChatTags(localStorage.token)); + dispatch('add', { + name: tagName + }); }; const deleteTag = async (tagName) => { diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index 1e0cea0ae..583624a28 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -179,7 +179,10 @@ console.log(type, tagName, chatId); if (type === 'delete') { currentChatPage.set(1); - await chats.set(await getChatListBySearchText(localStorage.token, search)); + await chats.set(await getChatListBySearchText(localStorage.token, search, $currentChatPage)); + } else if (type === 'add') { + currentChatPage.set(1); + await chats.set(await getChatListBySearchText(localStorage.token, search, $currentChatPage)); } }; diff --git a/src/lib/components/layout/Sidebar/ChatMenu.svelte b/src/lib/components/layout/Sidebar/ChatMenu.svelte index 0522c2446..306cd3633 100644 --- a/src/lib/components/layout/Sidebar/ChatMenu.svelte +++ b/src/lib/components/layout/Sidebar/ChatMenu.svelte @@ -141,6 +141,13 @@
{ + dispatch('tag', { + type: 'add', + name: e.detail.name + }); + show = false; + }} on:delete={(e) => { dispatch('tag', { type: 'delete',