mirror of
https://github.com/open-webui/open-webui
synced 2025-06-09 07:56:42 +00:00
fix: fixess issue #7181
This commit is contained in:
parent
b6128efb43
commit
f477f4f790
@ -345,6 +345,8 @@ async def get_file_content_by_id(id: str, user=Depends(get_verified_user)):
|
|||||||
async def delete_file_by_id(id: str, user=Depends(get_verified_user)):
|
async def delete_file_by_id(id: str, user=Depends(get_verified_user)):
|
||||||
file = Files.get_file_by_id(id)
|
file = Files.get_file_by_id(id)
|
||||||
if file and (file.user_id == user.id or user.role == "admin"):
|
if file and (file.user_id == user.id or user.role == "admin"):
|
||||||
|
# We should add Chroma cleanup here
|
||||||
|
|
||||||
result = Files.delete_file_by_id(id)
|
result = Files.delete_file_by_id(id)
|
||||||
if result:
|
if result:
|
||||||
try:
|
try:
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
import { generateAutoCompletion } from '$lib/apis';
|
import { generateAutoCompletion } from '$lib/apis';
|
||||||
import { error, text } from '@sveltejs/kit';
|
import { error, text } from '@sveltejs/kit';
|
||||||
import Image from '../common/Image.svelte';
|
import Image from '../common/Image.svelte';
|
||||||
|
import { deleteFileById } from '$lib/apis/files';
|
||||||
|
|
||||||
const i18n = getContext('i18n');
|
const i18n = getContext('i18n');
|
||||||
|
|
||||||
@ -615,9 +616,19 @@
|
|||||||
loading={file.status === 'uploading'}
|
loading={file.status === 'uploading'}
|
||||||
dismissible={true}
|
dismissible={true}
|
||||||
edit={true}
|
edit={true}
|
||||||
on:dismiss={() => {
|
on:dismiss={async () => {
|
||||||
|
try {
|
||||||
|
if (file.id) {
|
||||||
|
// This will handle both file deletion and Chroma cleanup
|
||||||
|
await deleteFileById(localStorage.token, file.id);
|
||||||
|
}
|
||||||
|
// Remove from UI state
|
||||||
files.splice(fileIdx, 1);
|
files.splice(fileIdx, 1);
|
||||||
files = files;
|
files = files;
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Error deleting file:', e);
|
||||||
|
toast.error(e);
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
on:click={() => {
|
on:click={() => {
|
||||||
console.log(file);
|
console.log(file);
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
export let type: string;
|
export let type: string;
|
||||||
export let size: number;
|
export let size: number;
|
||||||
|
|
||||||
|
import { deleteFileById } from '$lib/apis/files';
|
||||||
|
|
||||||
let showModal = false;
|
let showModal = false;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
import { page } from '$app/stores';
|
import { page } from '$app/stores';
|
||||||
import { mobile, showSidebar, knowledge as _knowledge } from '$lib/stores';
|
import { mobile, showSidebar, knowledge as _knowledge } from '$lib/stores';
|
||||||
|
|
||||||
import { updateFileDataContentById, uploadFile } from '$lib/apis/files';
|
import { updateFileDataContentById, uploadFile, deleteFileById } from '$lib/apis/files';
|
||||||
import {
|
import {
|
||||||
addFileToKnowledgeById,
|
addFileToKnowledgeById,
|
||||||
getKnowledgeById,
|
getKnowledgeById,
|
||||||
@ -372,18 +372,22 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const deleteFileHandler = async (fileId) => {
|
const deleteFileHandler = async (fileId) => {
|
||||||
const updatedKnowledge = await removeFileFromKnowledgeById(
|
try {
|
||||||
localStorage.token,
|
console.log('Starting file deletion process for:', fileId);
|
||||||
id,
|
|
||||||
fileId
|
// Remove from knowledge base only
|
||||||
).catch((e) => {
|
const updatedKnowledge = await removeFileFromKnowledgeById(localStorage.token, id, fileId);
|
||||||
toast.error(e);
|
|
||||||
});
|
console.log('Knowledge base updated:', updatedKnowledge);
|
||||||
|
|
||||||
if (updatedKnowledge) {
|
if (updatedKnowledge) {
|
||||||
knowledge = updatedKnowledge;
|
knowledge = updatedKnowledge;
|
||||||
toast.success($i18n.t('File removed successfully.'));
|
toast.success($i18n.t('File removed successfully.'));
|
||||||
}
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Error in deleteFileHandler:', e);
|
||||||
|
toast.error(e);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateFileContentHandler = async () => {
|
const updateFileContentHandler = async () => {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
? ' bg-gray-50 dark:bg-gray-850'
|
? ' bg-gray-50 dark:bg-gray-850'
|
||||||
: 'bg-transparent'} hover:bg-gray-50 dark:hover:bg-gray-850 transition"
|
: 'bg-transparent'} hover:bg-gray-50 dark:hover:bg-gray-850 transition"
|
||||||
{small}
|
{small}
|
||||||
{file}
|
item={file}
|
||||||
name={file?.name ?? file?.meta?.name}
|
name={file?.name ?? file?.meta?.name}
|
||||||
type="file"
|
type="file"
|
||||||
size={file?.size ?? file?.meta?.size ?? ''}
|
size={file?.size ?? file?.meta?.size ?? ''}
|
||||||
|
Loading…
Reference in New Issue
Block a user