mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-22 20:08:19 +00:00
fix enableFaceRecognition and menu Detect faces (#7979)
* fix frontend enableFaceRecognition and menu Detect faces * Update apis.py --------- Co-authored-by: 孙永强 <11704063+s-yongqiang@user.noreply.gitee.com>
This commit is contained in:
@@ -52,7 +52,7 @@
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.lib-settings-dialog .oepn-metadata-tip {
|
.lib-settings-dialog .open-metadata-tip {
|
||||||
background-color: #ffeacd;
|
background-color: #ffeacd;
|
||||||
margin: -1rem -1rem 1rem;
|
margin: -1rem -1rem 1rem;
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
|
@@ -62,7 +62,7 @@ const MetadataFaceRecognitionDialog = ({ value: oldValue, repoID, toggleDialog:
|
|||||||
{!showTurnOffConfirmDialog && (
|
{!showTurnOffConfirmDialog && (
|
||||||
<>
|
<>
|
||||||
<ModalBody className="metadata-face-recognition-dialog">
|
<ModalBody className="metadata-face-recognition-dialog">
|
||||||
{!enableMetadata && <p className="oepn-metadata-tip">{gettext('Please turn on extended properties setting first')}</p>}
|
{!enableMetadata && <p className="open-metadata-tip">{gettext('Please turn on extended properties setting first')}</p>}
|
||||||
<Switch
|
<Switch
|
||||||
checked={value}
|
checked={value}
|
||||||
disabled={submitting || !enableMetadata}
|
disabled={submitting || !enableMetadata}
|
||||||
|
@@ -89,7 +89,7 @@ const MetadataTagsStatusDialog = ({ value: oldValue, lang: oldLang, repoID, togg
|
|||||||
{!showTurnOffConfirmDialog && (
|
{!showTurnOffConfirmDialog && (
|
||||||
<>
|
<>
|
||||||
<ModalBody className="metadata-face-recognition-dialog">
|
<ModalBody className="metadata-face-recognition-dialog">
|
||||||
{!enableMetadata && <p className="oepn-metadata-tip">{gettext('Please turn on extended properties setting first')}</p>}
|
{!enableMetadata && <p className="open-metadata-tip">{gettext('Please turn on extended properties setting first')}</p>}
|
||||||
<Switch
|
<Switch
|
||||||
checked={value}
|
checked={value}
|
||||||
disabled={submitting || !enableMetadata}
|
disabled={submitting || !enableMetadata}
|
||||||
|
@@ -4,6 +4,7 @@ import { gettext, enableSeafileAI } from '@/utils/constants';
|
|||||||
import { Utils } from '@/utils/utils';
|
import { Utils } from '@/utils/utils';
|
||||||
import DeleteFolderDialog from '@/components/dialog/delete-folder-dialog';
|
import DeleteFolderDialog from '@/components/dialog/delete-folder-dialog';
|
||||||
import { useMetadataView } from '../../hooks/metadata-view';
|
import { useMetadataView } from '../../hooks/metadata-view';
|
||||||
|
import { useMetadataStatus } from '../../../hooks/metadata-status';
|
||||||
import RowUtils from './utils/row-utils';
|
import RowUtils from './utils/row-utils';
|
||||||
import { checkIsDir } from '../../utils/row';
|
import { checkIsDir } from '../../utils/row';
|
||||||
import { getColumnByKey, isNameColumn } from '../../utils/column';
|
import { getColumnByKey, isNameColumn } from '../../utils/column';
|
||||||
@@ -40,6 +41,7 @@ const ContextMenu = ({
|
|||||||
const [deletedFolderPath, setDeletedFolderPath] = useState('');
|
const [deletedFolderPath, setDeletedFolderPath] = useState('');
|
||||||
|
|
||||||
const { metadata } = useMetadataView();
|
const { metadata } = useMetadataView();
|
||||||
|
const { enableFaceRecognition } = useMetadataStatus();
|
||||||
|
|
||||||
const repoID = window.sfMetadataStore.repoId;
|
const repoID = window.sfMetadataStore.repoId;
|
||||||
|
|
||||||
@@ -116,7 +118,7 @@ const ContextMenu = ({
|
|||||||
const fileName = getFileNameFromRecord(record);
|
const fileName = getFileNameFromRecord(record);
|
||||||
return Utils.imageCheck(fileName);
|
return Utils.imageCheck(fileName);
|
||||||
});
|
});
|
||||||
if (imageRecords.length > 0) {
|
if (enableFaceRecognition && imageRecords.length > 0) {
|
||||||
list.push({ value: OPERATION.DETECT_FACES, label: gettext('Detect faces'), records: imageRecords });
|
list.push({ value: OPERATION.DETECT_FACES, label: gettext('Detect faces'), records: imageRecords });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,7 +154,7 @@ const ContextMenu = ({
|
|||||||
const fileName = getFileNameFromRecord(record);
|
const fileName = getFileNameFromRecord(record);
|
||||||
return Utils.imageCheck(fileName);
|
return Utils.imageCheck(fileName);
|
||||||
});
|
});
|
||||||
if (imageRecords.length > 0) {
|
if (enableFaceRecognition && imageRecords.length > 0) {
|
||||||
list.push({ value: OPERATION.DETECT_FACES, label: gettext('Detect faces'), records: imageRecords });
|
list.push({ value: OPERATION.DETECT_FACES, label: gettext('Detect faces'), records: imageRecords });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,7 +204,7 @@ const ContextMenu = ({
|
|||||||
if (isImage || isVideo) {
|
if (isImage || isVideo) {
|
||||||
aiOptions.push({ value: OPERATION.FILE_DETAIL, label: gettext('Extract file detail'), record: record });
|
aiOptions.push({ value: OPERATION.FILE_DETAIL, label: gettext('Extract file detail'), record: record });
|
||||||
}
|
}
|
||||||
if (isImage) {
|
if (enableFaceRecognition && isImage) {
|
||||||
aiOptions.push({ value: OPERATION.DETECT_FACES, label: gettext('Detect faces'), records: [record] });
|
aiOptions.push({ value: OPERATION.DETECT_FACES, label: gettext('Detect faces'), records: [record] });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,7 +231,7 @@ const ContextMenu = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}, [isGroupView, selectedPosition, recordMetrics, selectedRange, metadata, recordGetterByIndex, checkIsDescribableFile, getAbleDeleteRecords]);
|
}, [isGroupView, selectedPosition, recordMetrics, selectedRange, metadata, recordGetterByIndex, checkIsDescribableFile, getAbleDeleteRecords, enableFaceRecognition]);
|
||||||
|
|
||||||
const handleOptionClick = useCallback((option, event) => {
|
const handleOptionClick = useCallback((option, event) => {
|
||||||
switch (option.value) {
|
switch (option.value) {
|
||||||
|
@@ -1778,9 +1778,9 @@ class MetadataRecognizeFaces(APIView):
|
|||||||
error_msg = 'obj_ids is invalid.'
|
error_msg = 'obj_ids is invalid.'
|
||||||
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
|
||||||
|
|
||||||
record = RepoMetadata.objects.filter(repo_id=repo_id).first()
|
metadata = RepoMetadata.objects.filter(repo_id=repo_id).first()
|
||||||
if not record or not record.enabled:
|
if not metadata or not metadata.enabled or not metadata.face_recognition_enabled:
|
||||||
error_msg = f'The metadata module is disabled for repo {repo_id}.'
|
error_msg = f'The face recognition is disabled for repo {repo_id}.'
|
||||||
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
|
return api_error(status.HTTP_404_NOT_FOUND, error_msg)
|
||||||
|
|
||||||
repo = seafile_api.get_repo(repo_id)
|
repo = seafile_api.get_repo(repo_id)
|
||||||
|
Reference in New Issue
Block a user