mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-26 08:56:47 +08:00
### What problem does this PR solve? Fixes: Bugs fixed - Removed invalid code, - Modified the user center style, - Added an automatic data source parsing switch. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import { IconFontFill } from '@/components/icon-font';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Switch } from '@/components/ui/switch';
|
||||
import {
|
||||
Tooltip,
|
||||
TooltipContent,
|
||||
@ -24,16 +25,25 @@ export interface ILinkDataSourceProps {
|
||||
data?: IConnector[];
|
||||
handleLinkOrEditSubmit?: (data: IDataSourceBase[] | undefined) => void;
|
||||
unbindFunc?: (item: DataSourceItemProps) => void;
|
||||
handleAutoParse?: (option: {
|
||||
source_id: string;
|
||||
isAutoParse: boolean;
|
||||
}) => void;
|
||||
}
|
||||
|
||||
interface DataSourceItemProps extends IDataSourceNodeProps {
|
||||
openLinkModalFunc?: (open: boolean, data?: IDataSourceNodeProps) => void;
|
||||
unbindFunc?: (item: DataSourceItemProps) => void;
|
||||
handleAutoParse?: (option: {
|
||||
source_id: string;
|
||||
isAutoParse: boolean;
|
||||
}) => void;
|
||||
}
|
||||
|
||||
const DataSourceItem = (props: DataSourceItemProps) => {
|
||||
const { t } = useTranslation();
|
||||
const { id, name, icon, source, unbindFunc } = props;
|
||||
const { id, name, icon, source, auto_parse, unbindFunc, handleAutoParse } =
|
||||
props;
|
||||
|
||||
const { navigateToDataSourceDetail } = useNavigatePage();
|
||||
const { handleRebuild } = useDataSourceRebuild();
|
||||
@ -50,7 +60,19 @@ const DataSourceItem = (props: DataSourceItemProps) => {
|
||||
</div>
|
||||
<div>{name}</div>
|
||||
</div>
|
||||
<div className="flex items-center">
|
||||
<div className="flex items-center ">
|
||||
<div className="items-center gap-1 hidden mr-5 group-hover:flex">
|
||||
<div className="text-xs text-text-secondary">
|
||||
{t('knowledgeConfiguration.autoParse')}
|
||||
</div>
|
||||
<Switch
|
||||
checked={auto_parse === '1'}
|
||||
onCheckedChange={(isAutoParse) => {
|
||||
handleAutoParse?.({ source_id: id, isAutoParse });
|
||||
}}
|
||||
className="w-8 h-4"
|
||||
/>
|
||||
</div>
|
||||
<Tooltip>
|
||||
<TooltipTrigger>
|
||||
<Button
|
||||
@ -105,7 +127,12 @@ const DataSourceItem = (props: DataSourceItemProps) => {
|
||||
};
|
||||
|
||||
const LinkDataSource = (props: ILinkDataSourceProps) => {
|
||||
const { data, handleLinkOrEditSubmit: submit, unbindFunc } = props;
|
||||
const {
|
||||
data,
|
||||
handleLinkOrEditSubmit: submit,
|
||||
unbindFunc,
|
||||
handleAutoParse,
|
||||
} = props;
|
||||
const { t } = useTranslation();
|
||||
const [openLinkModal, setOpenLinkModal] = useState(false);
|
||||
|
||||
@ -176,6 +203,7 @@ const LinkDataSource = (props: ILinkDataSourceProps) => {
|
||||
key={item.id}
|
||||
openLinkModalFunc={openLinkModalFunc}
|
||||
unbindFunc={unbindFunc}
|
||||
handleAutoParse={handleAutoParse}
|
||||
{...item}
|
||||
/>
|
||||
),
|
||||
|
||||
@ -83,6 +83,7 @@ export const formSchema = z
|
||||
name: z.string().optional(),
|
||||
source: z.string().optional(),
|
||||
ststus: z.string().optional(),
|
||||
auto_parse: z.string().optional(),
|
||||
}),
|
||||
)
|
||||
.optional(),
|
||||
|
||||
@ -7,6 +7,7 @@ import { Form } from '@/components/ui/form';
|
||||
import { FormLayout } from '@/constants/form';
|
||||
import { DocumentParserType } from '@/constants/knowledge';
|
||||
import { PermissionRole } from '@/constants/permission';
|
||||
import { IConnector } from '@/interfaces/database/knowledge';
|
||||
import { DataSourceInfo } from '@/pages/user-setting/data-source/contant';
|
||||
import { IDataSourceBase } from '@/pages/user-setting/data-source/interface';
|
||||
import { zodResolver } from '@hookform/resolvers/zod';
|
||||
@ -149,11 +150,12 @@ export default function DatasetSettings() {
|
||||
// }
|
||||
// };
|
||||
|
||||
const handleLinkOrEditSubmit = (data: IDataSourceBase[] | undefined) => {
|
||||
const handleLinkOrEditSubmit = (data: IConnector[] | undefined) => {
|
||||
if (data) {
|
||||
const connectors = data.map((connector) => {
|
||||
return {
|
||||
...connector,
|
||||
auto_parse: connector.auto_parse === '0' ? '0' : '1',
|
||||
icon:
|
||||
DataSourceInfo[connector.source as keyof typeof DataSourceInfo]
|
||||
?.icon || '',
|
||||
@ -208,6 +210,31 @@ export default function DatasetSettings() {
|
||||
// form.setValue('pipeline_avatar', data.avatar || '');
|
||||
}
|
||||
};
|
||||
const handleAutoParse = ({
|
||||
source_id,
|
||||
isAutoParse,
|
||||
}: {
|
||||
source_id: string;
|
||||
isAutoParse: boolean;
|
||||
}) => {
|
||||
if (source_id) {
|
||||
const connectors = sourceData?.map((connector) => {
|
||||
if (connector.id === source_id) {
|
||||
return {
|
||||
...connector,
|
||||
auto_parse: isAutoParse ? '1' : '0',
|
||||
};
|
||||
}
|
||||
return connector;
|
||||
});
|
||||
console.log('🚀 ~ DatasetSettings ~ connectors:', connectors);
|
||||
setSourceData(connectors as IDataSourceNodeProps[]);
|
||||
form.setValue('connectors', connectors || []);
|
||||
// form.setValue('pipeline_name', data.name || '');
|
||||
// form.setValue('pipeline_avatar', data.avatar || '');
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<section className="p-5 h-full flex flex-col">
|
||||
<TopTitle
|
||||
@ -269,6 +296,7 @@ export default function DatasetSettings() {
|
||||
data={sourceData}
|
||||
handleLinkOrEditSubmit={handleLinkOrEditSubmit}
|
||||
unbindFunc={unbindFunc}
|
||||
handleAutoParse={handleAutoParse}
|
||||
/>
|
||||
</MainContainer>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user