mirror of
https://github.com/open-webui/open-webui.git
synced 2026-10-14 04:08:46 +00:00
fix: keep the open knowledge file open when an unrelated folder is deleted (#32319)
This commit is contained in:
parent
5477d5a773
commit
d7803a8ce2
3 changed files with 4 additions and 13 deletions
|
|
@ -2385,7 +2385,7 @@ async def delete_knowledge_directory(
|
|||
subject_id=dir_id,
|
||||
data={'knowledge_id': id, 'move_files': move_files},
|
||||
)
|
||||
return {'status': True}
|
||||
return {'status': True, 'file_ids': [file.id for file in files]}
|
||||
|
||||
|
||||
@router.post('/{id}/file/move')
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
import { getContext, onDestroy } from 'svelte';
|
||||
import { beforeNavigate, goto } from '$app/navigation';
|
||||
import { mobile } from '$lib/stores';
|
||||
import { getKnowledgeById } from '$lib/apis/knowledge';
|
||||
import { createFocusTrap } from 'focus-trap';
|
||||
import Files from './Files.svelte';
|
||||
import FileViewer from './FileViewer.svelte';
|
||||
|
|
@ -74,18 +73,11 @@
|
|||
selected = null;
|
||||
state = newViewerState();
|
||||
});
|
||||
const changed = async (file?: KnowledgeFile, removed?: string[]) => {
|
||||
const changed = (file?: KnowledgeFile, removed?: string[]) => {
|
||||
if (file && file.id === selected?.id) selected = file;
|
||||
else if (removed?.includes(selected?.id || '')) {
|
||||
selected = null;
|
||||
state = newViewerState();
|
||||
} else if (!file && !removed && selected) {
|
||||
const id = selected.id;
|
||||
const result = await getKnowledgeById(localStorage.token, knowledge.id);
|
||||
if (selected?.id === id && !result.files?.some((item: KnowledgeFile) => item.id === id)) {
|
||||
selected = null;
|
||||
state = newViewerState();
|
||||
}
|
||||
}
|
||||
};
|
||||
beforeNavigate((navigation) => {
|
||||
|
|
|
|||
|
|
@ -273,15 +273,14 @@
|
|||
toast.success($i18n.t('File removed successfully.'));
|
||||
onChanged(undefined, [deletion.file.id!]);
|
||||
} else if (deletion.directory) {
|
||||
await deleteKnowledgeDirectory(
|
||||
const res = await deleteKnowledgeDirectory(
|
||||
localStorage.token,
|
||||
knowledge.id,
|
||||
deletion.directory.id,
|
||||
!deleteContents
|
||||
);
|
||||
toast.success($i18n.t('Directory deleted.'));
|
||||
// The selected document may be in an unloaded descendant; let the browser verify membership.
|
||||
onChanged();
|
||||
onChanged(undefined, res.file_ids);
|
||||
expanded.delete(deletion.directory.id);
|
||||
expanded = new Set(expanded);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue