1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-25 06:33:48 +00:00

generate doc tags (#7182)

* generate doc tags

* update

---------

Co-authored-by: zheng.shen <zheng.shen@seafile.com>
This commit is contained in:
shenzheng-1
2024-12-13 10:16:52 +08:00
committed by GitHub
parent d7f11265ad
commit 977aa7971e
8 changed files with 56 additions and 42 deletions

View File

@@ -10,7 +10,7 @@ import { EVENT_BUS_TYPE, EVENT_BUS_TYPE as METADATA_EVENT_BUS_TYPE, PRIVATE_COLU
import { getFileNameFromRecord, getParentDirFromRecord, getFileObjIdFromRecord,
getRecordIdFromRecord,
} from '../../../utils/cell';
import ImageTagsDialog from '../../../components/dialog/image-tags-dialog';
import FileTagsDialog from '../../../components/dialog/file-tags-dialog';
import './index.css';
@@ -21,7 +21,7 @@ const OPERATION = {
OPEN_IN_NEW_TAB: 'open-new-tab',
GENERATE_DESCRIPTION: 'generate-description',
IMAGE_CAPTION: 'image-caption',
IMAGE_TAGS: 'image-tags',
FILE_TAGS: 'file-tags',
DELETE_RECORD: 'delete-record',
DELETE_RECORDS: 'delete-records',
RENAME_FILE: 'rename-file',
@@ -37,7 +37,7 @@ const ContextMenu = (props) => {
const menuRef = useRef(null);
const [visible, setVisible] = useState(false);
const [position, setPosition] = useState({ top: 0, left: 0 });
const [imageTagsRecord, setImageTagsRecord] = useState(null);
const [fileTagsRecord, setFileTagsRecord] = useState(null);
const { metadata } = useMetadataView();
@@ -143,8 +143,8 @@ const ContextMenu = (props) => {
list.push({ value: OPERATION.FILE_DETAIL, label: gettext('Extract file detail'), record: record });
}
if (tagsColumn && canModifyRow && Utils.imageCheck(fileName)) {
list.push({ value: OPERATION.IMAGE_TAGS, label: gettext('Generate image tags'), record: record });
if (tagsColumn && canModifyRow && (Utils.imageCheck(fileName) || checkIsDescribableDoc(record))) {
list.push({ value: OPERATION.FILE_TAGS, label: gettext('Generate file tags'), record: record });
}
// handle delete folder/file
@@ -252,8 +252,8 @@ const ContextMenu = (props) => {
});
}, [updateRecords]);
const toggleImageTagsRecord = useCallback((record = null) => {
setImageTagsRecord(record);
const toggleFileTagsRecord = useCallback((record = null) => {
setFileTagsRecord(record);
}, []);
const updateFileDetails = useCallback((records) => {
@@ -325,10 +325,10 @@ const ContextMenu = (props) => {
imageCaption(record);
break;
}
case OPERATION.IMAGE_TAGS: {
case OPERATION.FILE_TAGS: {
const { record } = option;
if (!record) break;
toggleImageTagsRecord(record);
toggleFileTagsRecord(record);
break;
}
case OPERATION.DELETE_RECORD: {
@@ -374,7 +374,7 @@ const ContextMenu = (props) => {
}
}
setVisible(false);
}, [onOpenFileInNewTab, onOpenParentFolder, onCopySelected, onClearSelected, generateDescription, imageCaption, deleteRecords, toggleDeleteFolderDialog, selectNone, updateFileDetails, toggleImageTagsRecord]);
}, [onOpenFileInNewTab, onOpenParentFolder, onCopySelected, onClearSelected, generateDescription, imageCaption, deleteRecords, toggleDeleteFolderDialog, selectNone, updateFileDetails, toggleFileTagsRecord]);
const getMenuPosition = useCallback((x = 0, y = 0) => {
let menuStyles = {
@@ -461,8 +461,8 @@ const ContextMenu = (props) => {
return (
<>
{renderMenu()}
{imageTagsRecord && (
<ImageTagsDialog record={imageTagsRecord} onToggle={toggleImageTagsRecord} onSubmit={updateFileTags} />
{fileTagsRecord && (
<FileTagsDialog record={fileTagsRecord} onToggle={toggleFileTagsRecord} onSubmit={updateFileTags} />
)}
</>