mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-08-14 04:36:52 +08:00
Fix: The filenames in the parsing result log pages are not displayed. (#18194)
This commit is contained in:
@@ -209,7 +209,11 @@ export const useNavigatePage = () => {
|
||||
const params: string[] = [];
|
||||
Object.keys(props).forEach((key) => {
|
||||
if (props[key as keyof typeof props]) {
|
||||
params.push(`${key}=${props[key as keyof typeof props]}`);
|
||||
// Values may contain characters like `&`, `=` or `#` (e.g. file
|
||||
// names), which would corrupt the query string without encoding.
|
||||
params.push(
|
||||
`${key}=${encodeURIComponent(props[key as keyof typeof props] as string)}`,
|
||||
);
|
||||
}
|
||||
});
|
||||
navigate(
|
||||
|
||||
@@ -75,6 +75,12 @@ export function PipelineLogSheet({
|
||||
uploadedFileData?.created_by,
|
||||
[PipelineResultSearchParams.DocumentExtension]:
|
||||
uploadedFileData?.extension,
|
||||
[PipelineResultSearchParams.DocumentName]:
|
||||
uploadedFileData?.name,
|
||||
[PipelineResultSearchParams.DocumentSize]:
|
||||
uploadedFileData?.size,
|
||||
[PipelineResultSearchParams.DocumentCreatedAt]:
|
||||
uploadedFileData?.created_at,
|
||||
})}
|
||||
>
|
||||
{t('flow.viewResult')} <ArrowUpRight />
|
||||
|
||||
@@ -23,4 +23,7 @@ export enum PipelineResultSearchParams {
|
||||
AgentTitle = 'agent_title',
|
||||
CreatedBy = 'created_by', // Who uploaded the file
|
||||
DocumentExtension = 'extension',
|
||||
DocumentName = 'doc_name',
|
||||
DocumentSize = 'doc_size',
|
||||
DocumentCreatedAt = 'doc_created_at',
|
||||
}
|
||||
|
||||
@@ -289,7 +289,6 @@ export const useGetPipelineResultSearchParams = () => {
|
||||
const is_read_only = currentQueryParameters.get(
|
||||
PipelineResultSearchParams.IsReadOnly,
|
||||
) as 'true' | 'false';
|
||||
console.log('is_read_only', is_read_only);
|
||||
return {
|
||||
type: currentQueryParameters.get(PipelineResultSearchParams.Type) || '',
|
||||
documentId:
|
||||
@@ -307,6 +306,14 @@ export const useGetPipelineResultSearchParams = () => {
|
||||
) || '',
|
||||
createdBy:
|
||||
currentQueryParameters.get(PipelineResultSearchParams.CreatedBy) || '',
|
||||
documentName:
|
||||
currentQueryParameters.get(PipelineResultSearchParams.DocumentName) || '',
|
||||
documentSize:
|
||||
currentQueryParameters.get(PipelineResultSearchParams.DocumentSize) || '',
|
||||
documentCreatedAt:
|
||||
currentQueryParameters.get(
|
||||
PipelineResultSearchParams.DocumentCreatedAt,
|
||||
) || '',
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import { Modal } from '@/components/ui/modal/modal';
|
||||
import { AgentCategory, AgentQuery } from '@/constants/agent';
|
||||
import { Images } from '@/constants/common';
|
||||
import { useGetKnowledgeSearchParams } from '@/hooks/route-hook';
|
||||
import { IKnowledgeFile } from '@/interfaces/database/dataset';
|
||||
import { Routes } from '@/routes';
|
||||
import { LucideArrowBigLeft } from 'lucide-react';
|
||||
import TimelineDataFlow from './components/time-line';
|
||||
@@ -33,17 +34,45 @@ import { IDslComponent, IPipelineFileLogDetail } from './interface';
|
||||
import ParserContainer from './parser';
|
||||
|
||||
const DataflowResult = () => {
|
||||
const { isReadOnly, knowledgeId, agentId, documentExtension } =
|
||||
useGetPipelineResultSearchParams();
|
||||
const {
|
||||
isReadOnly,
|
||||
knowledgeId,
|
||||
agentId,
|
||||
documentExtension,
|
||||
documentName,
|
||||
documentSize,
|
||||
documentCreatedAt,
|
||||
} = useGetPipelineResultSearchParams();
|
||||
|
||||
const isAgent = !!agentId;
|
||||
|
||||
const { pipelineResult } = useFetchPipelineResult({ agentId });
|
||||
|
||||
const {
|
||||
data: { documentInfo },
|
||||
data: { documentInfo: chunkDocumentInfo },
|
||||
} = useFetchNextChunkList(!isAgent);
|
||||
|
||||
// In agent mode the chunk list query is disabled, so the document info
|
||||
// comes from the search params passed by the pipeline log sheet instead.
|
||||
const documentInfo = useMemo<IKnowledgeFile>(() => {
|
||||
if (!isAgent) {
|
||||
return chunkDocumentInfo;
|
||||
}
|
||||
return {
|
||||
name: documentName,
|
||||
size: Number(documentSize) || 0,
|
||||
create_date: documentCreatedAt
|
||||
? new Date(Number(documentCreatedAt) * 1000).toISOString()
|
||||
: '',
|
||||
} as IKnowledgeFile;
|
||||
}, [
|
||||
chunkDocumentInfo,
|
||||
documentCreatedAt,
|
||||
documentName,
|
||||
documentSize,
|
||||
isAgent,
|
||||
]);
|
||||
|
||||
const { selectedChunk, handleChunkCardClick } = useHandleChunkCardClick();
|
||||
const [activeStepId, setActiveStepId] = useState<number | string>(2);
|
||||
const { data: dataset } = useFetchPipelineFileLogDetail({
|
||||
|
||||
@@ -150,4 +150,7 @@ export interface NavigateToDataflowResultProps {
|
||||
[PipelineResultSearchParams.Type]: string;
|
||||
[PipelineResultSearchParams.CreatedBy]?: string;
|
||||
[PipelineResultSearchParams.DocumentExtension]?: string;
|
||||
[PipelineResultSearchParams.DocumentName]?: string;
|
||||
[PipelineResultSearchParams.DocumentSize]?: string | number;
|
||||
[PipelineResultSearchParams.DocumentCreatedAt]?: string | number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user