forked from open-webui/open-webui
		
	fix: cleanup unused tags
This commit is contained in:
		
							parent
							
								
									7c1b8e396a
								
							
						
					
					
						commit
						1d937ec2f2
					
				
					 4 changed files with 37 additions and 6 deletions
				
			
		|  | @ -9,11 +9,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||
| 
 | ||||
| ### Added | ||||
| 
 | ||||
| - **🔄 Check for Updates**: Now conveniently available in Settings > About. | ||||
| - **🔄 Check for Updates**: Keep your system current by checking for updates conveniently located in Settings > About. | ||||
| - **🗑️ Automatic Tag Deletion**: Unused tags on the sidebar will now be deleted automatically with just a click. | ||||
| 
 | ||||
| ### Changed | ||||
| 
 | ||||
| - **🎨 Modernized Styling**: Updated for a more contemporary appearance. | ||||
| - **🎨 Modernized Styling**: Enjoy a refreshed look with updated styling for a more contemporary experience. | ||||
| 
 | ||||
| ## [0.1.103] - 2024-02-25 | ||||
| 
 | ||||
|  |  | |||
|  | @ -167,6 +167,27 @@ class TagTable: | |||
|             .count() | ||||
|         ) | ||||
| 
 | ||||
|     def delete_tag_by_tag_name_and_user_id(self, tag_name: str, user_id: str) -> bool: | ||||
|         try: | ||||
|             query = ChatIdTag.delete().where( | ||||
|                 (ChatIdTag.tag_name == tag_name) & (ChatIdTag.user_id == user_id) | ||||
|             ) | ||||
|             res = query.execute()  # Remove the rows, return number of rows removed. | ||||
|             print(res) | ||||
| 
 | ||||
|             tag_count = self.count_chat_ids_by_tag_name_and_user_id(tag_name, user_id) | ||||
|             if tag_count == 0: | ||||
|                 # Remove tag item from Tag col as well | ||||
|                 query = Tag.delete().where( | ||||
|                     (Tag.name == tag_name) & (Tag.user_id == user_id) | ||||
|                 ) | ||||
|                 query.execute()  # Remove the rows, return number of rows removed. | ||||
| 
 | ||||
|             return True | ||||
|         except Exception as e: | ||||
|             print("delete_tag", e) | ||||
|             return False | ||||
| 
 | ||||
|     def delete_tag_by_tag_name_and_chat_id_and_user_id( | ||||
|         self, tag_name: str, chat_id: str, user_id: str | ||||
|     ) -> bool: | ||||
|  |  | |||
|  | @ -115,9 +115,12 @@ async def get_user_chats_by_tag_name( | |||
|         for chat_id_tag in Tags.get_chat_ids_by_tag_name_and_user_id(tag_name, user.id) | ||||
|     ] | ||||
| 
 | ||||
|     print(chat_ids) | ||||
|     chats = Chats.get_chat_lists_by_chat_ids(chat_ids, skip, limit) | ||||
| 
 | ||||
|     return Chats.get_chat_lists_by_chat_ids(chat_ids, skip, limit) | ||||
|     if len(chats) == 0: | ||||
|         Tags.delete_tag_by_tag_name_and_user_id(tag_name, user.id) | ||||
| 
 | ||||
|     return chats | ||||
| 
 | ||||
| 
 | ||||
| ############################ | ||||
|  |  | |||
|  | @ -13,7 +13,8 @@ | |||
| 		getChatList, | ||||
| 		getChatById, | ||||
| 		getChatListByTagName, | ||||
| 		updateChatById | ||||
| 		updateChatById, | ||||
| 		getAllChatTags | ||||
| 	} from '$lib/apis/chats'; | ||||
| 	import toast from 'svelte-french-toast'; | ||||
| 	import { slide } from 'svelte/transition'; | ||||
|  | @ -330,7 +331,12 @@ | |||
| 						<button | ||||
| 							class="px-2.5 text-xs font-medium bg-gray-900 hover:bg-gray-800 transition rounded-full" | ||||
| 							on:click={async () => { | ||||
| 								await chats.set(await getChatListByTagName(localStorage.token, tag.name)); | ||||
| 								let chatIds = await getChatListByTagName(localStorage.token, tag.name); | ||||
| 								if (chatIds.length === 0) { | ||||
| 									await tags.set(await getAllChatTags(localStorage.token)); | ||||
| 									chatIds = await getChatList(localStorage.token); | ||||
| 								} | ||||
| 								await chats.set(chatIds); | ||||
| 							}} | ||||
| 						> | ||||
| 							{tag.name} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek