mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 15:38:15 +00:00
fix: repo encrypted metdata (#6963)
Co-authored-by: 杨国璇 <ygx@Hello-word.local>
This commit is contained in:
@@ -1,14 +1,17 @@
|
|||||||
import React, { useCallback, useMemo, useState, useEffect } from 'react';
|
import React, { useCallback, useMemo, useState } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import TreeSection from '../tree-section';
|
import TreeSection from '../tree-section';
|
||||||
import { MetadataStatusManagementDialog, MetadataFaceRecognitionDialog, MetadataTreeView, useMetadata } from '../../metadata';
|
import { MetadataStatusManagementDialog, MetadataFaceRecognitionDialog, MetadataTreeView, useMetadata } from '../../metadata';
|
||||||
import ExtensionPrompts from './extension-prompts';
|
import ExtensionPrompts from './extension-prompts';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
|
||||||
|
|
||||||
const DirViews = ({ userPerm, repoID, currentPath, currentRepoInfo }) => {
|
const DirViews = ({ userPerm, repoID, currentPath, currentRepoInfo }) => {
|
||||||
|
const enableMetadataManagement = useMemo(() => {
|
||||||
|
if (currentRepoInfo.encrypted) return false;
|
||||||
|
return window.app.pageOptions.enableMetadataManagement;
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [window.app.pageOptions.enableMetadataManagement, currentRepoInfo]);
|
||||||
|
|
||||||
const [enableMetadataManagement, setEnableMetadataManagement] = useState(false);
|
|
||||||
const [showMetadataStatusManagementDialog, setShowMetadataStatusManagementDialog] = useState(false);
|
const [showMetadataStatusManagementDialog, setShowMetadataStatusManagementDialog] = useState(false);
|
||||||
const [showMetadataFaceRecognitionDialog, setShowMetadataFaceRecognitionDialog] = useState(false);
|
const [showMetadataFaceRecognitionDialog, setShowMetadataFaceRecognitionDialog] = useState(false);
|
||||||
const { enableMetadata, updateEnableMetadata, enableFaceRecognition, updateEnableFaceRecognition, navigation } = useMetadata();
|
const { enableMetadata, updateEnableMetadata, enableFaceRecognition, updateEnableFaceRecognition, navigation } = useMetadata();
|
||||||
@@ -23,16 +26,6 @@ const DirViews = ({ userPerm, repoID, currentPath, currentRepoInfo }) => {
|
|||||||
return operations;
|
return operations;
|
||||||
}, [enableMetadataManagement, enableMetadata, currentRepoInfo]);
|
}, [enableMetadataManagement, enableMetadata, currentRepoInfo]);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
seafileAPI.getRepoInfo(repoID).then(res => {
|
|
||||||
if (res.data.encrypted) {
|
|
||||||
setEnableMetadataManagement(false);
|
|
||||||
} else {
|
|
||||||
setEnableMetadataManagement(window.app.pageOptions.enableMetadataManagement);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, [repoID]);
|
|
||||||
|
|
||||||
const moreOperationClick = useCallback((operationKey) => {
|
const moreOperationClick = useCallback((operationKey) => {
|
||||||
switch (operationKey) {
|
switch (operationKey) {
|
||||||
case 'extended-properties': {
|
case 'extended-properties': {
|
||||||
|
@@ -1,17 +1,21 @@
|
|||||||
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import metadataAPI from '../api';
|
import metadataAPI from '../api';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import toaster from '../../components/toast';
|
import toaster from '../../components/toast';
|
||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
import { PRIVATE_FILE_TYPE } from '../../constants';
|
import { PRIVATE_FILE_TYPE } from '../../constants';
|
||||||
import { FACE_RECOGNITION_VIEW_ID } from '../constants';
|
import { FACE_RECOGNITION_VIEW_ID } from '../constants';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
|
||||||
|
|
||||||
// This hook provides content related to seahub interaction, such as whether to enable extended attributes, views data, etc.
|
// This hook provides content related to seahub interaction, such as whether to enable extended attributes, views data, etc.
|
||||||
const MetadataContext = React.createContext(null);
|
const MetadataContext = React.createContext(null);
|
||||||
|
|
||||||
export const MetadataProvider = ({ repoID, hideMetadataView, selectMetadataView, children }) => {
|
export const MetadataProvider = ({ repoID, currentRepoInfo, hideMetadataView, selectMetadataView, children }) => {
|
||||||
const [enableMetadataManagement, setEnableMetadataManagement] = useState(false);
|
const enableMetadataManagement = useMemo(() => {
|
||||||
|
if (currentRepoInfo.encrypted) return false;
|
||||||
|
return window.app.pageOptions.enableMetadataManagement;
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [window.app.pageOptions.enableMetadataManagement, currentRepoInfo]);
|
||||||
|
|
||||||
const [enableMetadata, setEnableExtendedProperties] = useState(false);
|
const [enableMetadata, setEnableExtendedProperties] = useState(false);
|
||||||
const [enableFaceRecognition, setEnableFaceRecognition] = useState(false);
|
const [enableFaceRecognition, setEnableFaceRecognition] = useState(false);
|
||||||
const [showFirstView, setShowFirstView] = useState(false);
|
const [showFirstView, setShowFirstView] = useState(false);
|
||||||
@@ -20,16 +24,6 @@ export const MetadataProvider = ({ repoID, hideMetadataView, selectMetadataView,
|
|||||||
const [, setCount] = useState(0);
|
const [, setCount] = useState(0);
|
||||||
const viewsMap = useRef({});
|
const viewsMap = useRef({});
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
seafileAPI.getRepoInfo(repoID).then(res => {
|
|
||||||
if (res.data.encrypted) {
|
|
||||||
setEnableMetadataManagement(false);
|
|
||||||
} else {
|
|
||||||
setEnableMetadataManagement(window.app.pageOptions.enableMetadataManagement);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, [repoID]);
|
|
||||||
|
|
||||||
const cancelURLView = useCallback(() => {
|
const cancelURLView = useCallback(() => {
|
||||||
// If attribute extension is turned off, unmark the URL
|
// If attribute extension is turned off, unmark the URL
|
||||||
const { origin, pathname, search } = window.location;
|
const { origin, pathname, search } = window.location;
|
||||||
|
@@ -2254,6 +2254,7 @@ class LibContentView extends React.Component {
|
|||||||
return (
|
return (
|
||||||
<MetadataProvider
|
<MetadataProvider
|
||||||
repoID={this.props.repoID}
|
repoID={this.props.repoID}
|
||||||
|
currentRepoInfo={currentRepoInfo}
|
||||||
selectMetadataView={this.onTreeNodeClick}
|
selectMetadataView={this.onTreeNodeClick}
|
||||||
hideMetadataView={this.hideFileMetadata}
|
hideMetadataView={this.hideFileMetadata}
|
||||||
>
|
>
|
||||||
|
Reference in New Issue
Block a user