|
@@ -56,6 +56,7 @@ import { extensionToFileType } from '@/app/components/datasets/hit-testing/utils
|
|
|
import useBatchEditDocumentMetadata from '../metadata/hooks/use-batch-edit-document-metadata'
|
|
|
import EditMetadataBatchModal from '@/app/components/datasets/metadata/edit-metadata-batch/modal'
|
|
|
import { useAppContext } from '@/context/app-context'
|
|
|
+import { GetDatasetAuth } from '@/app/(commonLayout)/datasets/Container'
|
|
|
|
|
|
export const useIndexStatus = () => {
|
|
|
const { t } = useTranslation()
|
|
@@ -470,7 +471,7 @@ type IDocumentListProps = {
|
|
|
pagination: PaginationProps
|
|
|
onUpdate: () => void
|
|
|
onManageMetadata: () => void,
|
|
|
- optionsExamineStatus: any[]
|
|
|
+ dataset: any
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -485,8 +486,9 @@ const DocumentList: FC<IDocumentListProps> = ({
|
|
|
pagination,
|
|
|
onUpdate,
|
|
|
onManageMetadata,
|
|
|
- optionsExamineStatus,
|
|
|
+ dataset,
|
|
|
}) => {
|
|
|
+ const { isCreate, isEdit, isOperation } = GetDatasetAuth(dataset)
|
|
|
const { t } = useTranslation()
|
|
|
const { formatTime } = useTimestamp()
|
|
|
const router = useRouter()
|
|
@@ -582,7 +584,7 @@ const DocumentList: FC<IDocumentListProps> = ({
|
|
|
else { Toast.notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') }) }
|
|
|
}
|
|
|
}
|
|
|
- const ExamineMap = {
|
|
|
+ const ExamineMap: any = {
|
|
|
1: '待审核',
|
|
|
2: '审核不通过',
|
|
|
3: '无',
|
|
@@ -632,7 +634,7 @@ const DocumentList: FC<IDocumentListProps> = ({
|
|
|
<tr>
|
|
|
<td className='w-12'>
|
|
|
<div className='flex items-center' onClick={e => e.stopPropagation()}>
|
|
|
- {embeddingAvailable && (
|
|
|
+ {isOperation && embeddingAvailable && (
|
|
|
<Checkbox
|
|
|
className='mr-2 shrink-0'
|
|
|
checked={isAllSelected}
|
|
@@ -659,7 +661,11 @@ const DocumentList: FC<IDocumentListProps> = ({
|
|
|
</td>
|
|
|
<td className='w-40'>{t('datasetDocuments.list.table.header.status')}</td>
|
|
|
<td className='w-40'>审核状态</td>
|
|
|
- <td className='w-20'>{t('datasetDocuments.list.table.header.action')}</td>
|
|
|
+ {
|
|
|
+ isOperation && (
|
|
|
+ <td className='w-20'>{t('datasetDocuments.list.table.header.action')}</td>
|
|
|
+ )
|
|
|
+ }
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody className="text-text-secondary">
|
|
@@ -668,50 +674,58 @@ const DocumentList: FC<IDocumentListProps> = ({
|
|
|
const fileType = isFile ? doc.data_source_detail_dict?.upload_file?.extension : ''
|
|
|
return <tr
|
|
|
key={doc.id}
|
|
|
- className={'h-8 cursor-pointer border-b border-divider-subtle hover:bg-background-default-hover'}
|
|
|
+ className={`h-8 border-b border-divider-subtle ${isOperation && (doc.check_status === 2 || doc.check_status === 3) ? 'cursor-pointer hover:bg-background-default-hover' : ''}`}
|
|
|
onClick={() => {
|
|
|
- (doc.check_status === 2 || doc.check_status === 3) && router.push(`/datasets/${datasetId}/documents/${doc.id}`)
|
|
|
+ isOperation && (doc.check_status === 2 || doc.check_status === 3) && router.push(`/datasets/${datasetId}/documents/${doc.id}`)
|
|
|
}}>
|
|
|
<td className='text-left align-middle text-xs text-text-tertiary'>
|
|
|
<div className='flex items-center' onClick={e => e.stopPropagation()}>
|
|
|
- <Checkbox
|
|
|
- className='mr-2 shrink-0'
|
|
|
- checked={selectedIds.includes(doc.id)}
|
|
|
- onCheck={() => {
|
|
|
- onSelectedIdChange(
|
|
|
- selectedIds.includes(doc.id)
|
|
|
- ? selectedIds.filter(id => id !== doc.id)
|
|
|
- : [...selectedIds, doc.id],
|
|
|
- )
|
|
|
- }}
|
|
|
- />
|
|
|
+ {
|
|
|
+ isOperation && (
|
|
|
+ <Checkbox
|
|
|
+ className='mr-2 shrink-0'
|
|
|
+ checked={selectedIds.includes(doc.id)}
|
|
|
+ onCheck={() => {
|
|
|
+ onSelectedIdChange(
|
|
|
+ selectedIds.includes(doc.id)
|
|
|
+ ? selectedIds.filter(id => id !== doc.id)
|
|
|
+ : [...selectedIds, doc.id],
|
|
|
+ )
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ )
|
|
|
+ }
|
|
|
{/* {doc.position} */}
|
|
|
{index + 1}
|
|
|
</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
- <div className={'group mr-6 flex max-w-[460px] items-center hover:mr-0'}>
|
|
|
+ <div className={`group mr-6 flex max-w-[460px] items-center ${isOperation ? 'hover:mr-0' : ''}`}>
|
|
|
<div className='shrink-0'>
|
|
|
{doc?.data_source_type === DataSourceType.NOTION && <NotionIcon className='mr-1.5 mt-[-3px] inline-flex align-middle' type='page' src={doc.data_source_info.notion_page_icon} />}
|
|
|
{doc?.data_source_type === DataSourceType.FILE && <FileTypeIcon type={extensionToFileType(doc?.data_source_info?.upload_file?.extension ?? fileType)} className='mr-1.5' />}
|
|
|
{doc?.data_source_type === DataSourceType.WEB && <Globe01 className='mr-1.5 mt-[-3px] inline-flex align-middle' />}
|
|
|
</div>
|
|
|
<span className='grow-1 truncate text-sm'>{doc.name}</span>
|
|
|
- <div className='hidden shrink-0 group-hover:ml-auto group-hover:flex'>
|
|
|
- <Tooltip
|
|
|
- popupContent={t('datasetDocuments.list.table.rename')}
|
|
|
- >
|
|
|
- <div
|
|
|
- className='cursor-pointer rounded-md p-1 hover:bg-state-base-hover'
|
|
|
- onClick={(e) => {
|
|
|
- e.stopPropagation()
|
|
|
- handleShowRenameModal(doc)
|
|
|
- }}
|
|
|
- >
|
|
|
- <RiEditLine className='h-4 w-4 text-text-tertiary' />
|
|
|
+ {
|
|
|
+ isOperation && (
|
|
|
+ <div className='hidden shrink-0 group-hover:ml-auto group-hover:flex'>
|
|
|
+ <Tooltip
|
|
|
+ popupContent={t('datasetDocuments.list.table.rename')}
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ className='cursor-pointer rounded-md p-1 hover:bg-state-base-hover'
|
|
|
+ onClick={(e) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ handleShowRenameModal(doc)
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <RiEditLine className='h-4 w-4 text-text-tertiary' />
|
|
|
+ </div>
|
|
|
+ </Tooltip>
|
|
|
</div>
|
|
|
- </Tooltip>
|
|
|
- </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
</div>
|
|
|
</td>
|
|
|
<td>
|
|
@@ -734,43 +748,53 @@ const DocumentList: FC<IDocumentListProps> = ({
|
|
|
</td>
|
|
|
<td>
|
|
|
{
|
|
|
- doc.check_status === 1 && (
|
|
|
- ['owner', 'admin'].includes(appContext.currentWorkspace.role)
|
|
|
- ? <div className="cursor-pointer text-[#155aef]" onClick={(e) => {
|
|
|
- e.stopPropagation()
|
|
|
- setRow(doc)
|
|
|
- setConfirmExamineHandleTitle(`${doc.enabled ? '下线' : '上线'}审核`)
|
|
|
- setConfirmExamineHandleContent(`用户“${doc.enable_application}”申请将该知识${doc.enabled ? '下线' : '上线'},请审核!`)
|
|
|
- setShowConfirmExamineHandle(true)
|
|
|
- }}>{ExamineMap[doc.check_status]}</div>
|
|
|
- : <div>{ExamineMap[doc.check_status]}</div>
|
|
|
- )
|
|
|
- }
|
|
|
- {
|
|
|
- doc.check_status === 2 && (
|
|
|
- <div className="cursor text-[#155aef]" onClick={(e) => {
|
|
|
- e.stopPropagation()
|
|
|
- setConfirmExamineResultContent(`用户“${doc.check_by}”不同意将该知识上线!`)
|
|
|
- setShowConfirmExamineResult(true)
|
|
|
- }}>{ExamineMap[doc.check_status]}</div>
|
|
|
- )
|
|
|
- }
|
|
|
- {
|
|
|
- doc.check_status === 3 && (
|
|
|
+ isOperation ? (<>
|
|
|
+ {
|
|
|
+ doc.check_status === 1 && (
|
|
|
+ ['owner', 'admin'].includes(appContext.currentWorkspace.role)
|
|
|
+ ? <div className="cursor-pointer text-[#155aef]" onClick={(e) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ setRow(doc)
|
|
|
+ setConfirmExamineHandleTitle(`${doc.enabled ? '下线' : '上线'}审核`)
|
|
|
+ setConfirmExamineHandleContent(`用户“${doc.enable_application}”申请将该知识${doc.enabled ? '下线' : '上线'},请审核!`)
|
|
|
+ setShowConfirmExamineHandle(true)
|
|
|
+ }}>{ExamineMap[doc.check_status]}</div>
|
|
|
+ : <div>{ExamineMap[doc.check_status]}</div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ {
|
|
|
+ doc.check_status === 2 && (
|
|
|
+ <div className="cursor text-[#155aef]" onClick={(e) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ setConfirmExamineResultContent(`用户“${doc.check_by}”不同意将该知识上线!`)
|
|
|
+ setShowConfirmExamineResult(true)
|
|
|
+ }}>{ExamineMap[doc.check_status]}</div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ {
|
|
|
+ doc.check_status === 3 && (
|
|
|
+ <div>{ExamineMap[doc.check_status]}</div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ </>) : (
|
|
|
<div>{ExamineMap[doc.check_status]}</div>
|
|
|
)
|
|
|
}
|
|
|
</td>
|
|
|
- <td>
|
|
|
- {
|
|
|
- (doc.check_status === 2 || doc.check_status === 3) && (<OperationAction
|
|
|
- embeddingAvailable={embeddingAvailable}
|
|
|
- datasetId={datasetId}
|
|
|
- detail={pick(doc, ['name', 'enabled', 'archived', 'id', 'data_source_type', 'doc_form', 'check_status'])}
|
|
|
- onUpdate={onUpdate}
|
|
|
- />)
|
|
|
- }
|
|
|
- </td>
|
|
|
+ {
|
|
|
+ isOperation && (
|
|
|
+ <td>
|
|
|
+ {
|
|
|
+ (doc.check_status === 2 || doc.check_status === 3) && (<OperationAction
|
|
|
+ embeddingAvailable={embeddingAvailable}
|
|
|
+ datasetId={datasetId}
|
|
|
+ detail={pick(doc, ['name', 'enabled', 'archived', 'id', 'data_source_type', 'doc_form', 'check_status'])}
|
|
|
+ onUpdate={onUpdate}
|
|
|
+ />)
|
|
|
+ }
|
|
|
+ </td>
|
|
|
+ )
|
|
|
+ }
|
|
|
</tr>
|
|
|
})}
|
|
|
</tbody>
|