diff --git a/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte b/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte index 59f6bb596c..bc34007ddc 100644 --- a/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte +++ b/src/lib/components/workspace/Knowledge/KnowledgeBase/FileViewer.svelte @@ -81,7 +81,10 @@ draft: state.editing && state.indexed !== null ? state.draft : content }; } catch (error) { - if (!signal.aborted) indexedError = message(error); + if (!signal.aborted) { + indexedError = message(error); + toast.error($i18n.t('Failed to load file content.')); + } } finally { if (!signal.aborted) indexedLoading = false; } @@ -197,7 +200,7 @@ try { const result = await updateFileDataContentById(localStorage.token, file.id!, state.draft); state = { ...state, indexed: result.content, draft: result.content, editing: false }; - toast.success($i18n.t('Indexed text saved.')); + toast.success($i18n.t('File content updated successfully.')); await onSaved(); } catch (error) { toast.error(message(error)); @@ -311,9 +314,14 @@ bind:this={indexedEditor} bind:value={state.draft} filePath="indexed.txt" + ariaLabel={$i18n.t('File content')} + placeholder={state.editing ? $i18n.t('Add content here') : ''} readOnly={!writeAccess || !state.editing || saving} onSave={save} /> + {#if !state.indexed && !state.editing}
+ {$i18n.t('No content found')} +
{/if} {/if} diff --git a/src/lib/components/workspace/Knowledge/KnowledgeBase/Files.svelte b/src/lib/components/workspace/Knowledge/KnowledgeBase/Files.svelte index 68dfc39c39..6a6c923dc8 100644 --- a/src/lib/components/workspace/Knowledge/KnowledgeBase/Files.svelte +++ b/src/lib/components/workspace/Knowledge/KnowledgeBase/Files.svelte @@ -203,6 +203,7 @@ const { parent, name } = creating; try { await createKnowledgeDirectory(localStorage.token, knowledge.id, name.trim(), parent); + toast.success($i18n.t('Directory created.')); creating = null; await reload([parent]); } catch (error) { @@ -233,6 +234,7 @@ const renameFile = async (file: KnowledgeFile, name: string) => { try { await renameFileById(localStorage.token, file.id!, name); + toast.success($i18n.t('File renamed.')); onChanged({ ...file, filename: name, name, meta: { ...file.meta, name } }); await reload([file.directory_id ?? null]); } catch (error) { @@ -243,6 +245,7 @@ const renameDirectory = async (directory: KnowledgeDirectory, name: string) => { try { await updateKnowledgeDirectory(localStorage.token, knowledge.id, directory.id, { name }); + toast.success($i18n.t('Directory renamed.')); await reload(); } catch (error) { report(error); @@ -255,6 +258,7 @@ if (kind === 'file') await moveFileInKnowledge(localStorage.token, knowledge.id, id, target); else await updateKnowledgeDirectory(localStorage.token, knowledge.id, id, { parent_id: target }); + toast.success(kind === 'file' ? $i18n.t('File moved.') : $i18n.t('Directory moved.')); if (target) expanded = new Set([...expanded, target]); await reload(); } catch (error) { @@ -266,6 +270,7 @@ try { if (deletion.file) { await removeFileFromKnowledgeById(localStorage.token, knowledge.id, deletion.file.id!); + toast.success($i18n.t('File removed successfully.')); onChanged(undefined, [deletion.file.id!]); } else if (deletion.directory) { await deleteKnowledgeDirectory( @@ -274,6 +279,7 @@ 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(); expanded.delete(deletion.directory.id); @@ -325,7 +331,10 @@