From 1b02d7b4915e1f9fe55c1dd32bbe6d7bbc78befd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=B0=B8=E5=BC=BA?= <11704063+s-yongqiang@user.noreply.gitee.com> Date: Thu, 24 Apr 2025 11:15:37 +0800 Subject: [PATCH] update ui --- .../src/components/dialog/lib-settings.js | 35 ++++++++++++++++++- .../src/components/repo-info-bar-migrate.js | 11 +++--- .../metadata-tags-status-dialog/index.js | 15 ++++---- 3 files changed, 46 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/dialog/lib-settings.js b/frontend/src/components/dialog/lib-settings.js index 3f6eddac1d..229db467bc 100644 --- a/frontend/src/components/dialog/lib-settings.js +++ b/frontend/src/components/dialog/lib-settings.js @@ -14,6 +14,7 @@ import { } from '../../metadata'; import SeahubModalHeader from '@/components/common/seahub-modal-header'; import { useMetadataStatus } from '../../hooks'; +import Loading from '../../components/loading'; import '../../css/lib-settings.css'; @@ -28,6 +29,7 @@ const propTypes = { const LibSettingsDialog = ({ repoID, currentRepoInfo, toggleDialog, tab, showMigrateTip, usedRepoTags, onMigrateSuccess }) => { const [activeTab, setActiveTab] = useState(tab || TAB.HISTORY_SETTING); + const [isMigrating, setIsMigrating] = useState(false); const toggleTab = useCallback((tab) => { setActiveTab(tab); }, []); @@ -46,9 +48,38 @@ const LibSettingsDialog = ({ repoID, currentRepoInfo, toggleDialog, tab, showMig const enableAutoDelSetting = is_admin && enableRepoAutoDel; const enableExtendedPropertiesSetting = !encrypted && is_admin && enableMetadataManagement; + const handleMigrateStart = useCallback(() => { + setIsMigrating(true); + }, []); + + const handleMigrateEnd = useCallback(() => { + setIsMigrating(false); + onMigrateSuccess && onMigrateSuccess(); + }, [onMigrateSuccess]); + + const handleMigrateError = useCallback(() => { + setIsMigrating(false); + }, []); + return (
+ {isMigrating && ( +
+ +
+ )} {gettext('Settings')} @@ -203,7 +234,9 @@ const LibSettingsDialog = ({ repoID, currentRepoInfo, toggleDialog, tab, showMig enableMetadata={enableMetadata} showMigrateTip={showMigrateTip} usedRepoTags={usedRepoTags} - onMigrateSuccess={onMigrateSuccess} + onMigrateSuccess={handleMigrateEnd} + onMigrateError={handleMigrateError} + onMigrateStart={handleMigrateStart} /> )} diff --git a/frontend/src/components/repo-info-bar-migrate.js b/frontend/src/components/repo-info-bar-migrate.js index bc2bd3f4bc..f5e72d259a 100644 --- a/frontend/src/components/repo-info-bar-migrate.js +++ b/frontend/src/components/repo-info-bar-migrate.js @@ -7,7 +7,7 @@ import { EVENT_BUS_TYPE } from '../components/common/event-bus-type'; const RepoInfoBarMigrate = () => { - const { enableMetadata, detailsSettings } = useMetadataStatus(); + const { enableMetadataManagement, detailsSettings } = useMetadataStatus(); const tagsMigrated = detailsSettings?.tags_migrated; const openMigrate = () => { eventBus.dispatch(EVENT_BUS_TYPE.OPEN_TREE_PANEL, () => eventBus.dispatch(EVENT_BUS_TYPE.OPEN_LIBRARY_SETTINGS_TAGS)); @@ -15,17 +15,16 @@ const RepoInfoBarMigrate = () => { return (
- {enableMetadata && !tagsMigrated ? - ( + {!tagsMigrated && ( + enableMetadataManagement ? ( <> {gettext('Tips: There are tags of old version. Please migrate tags to new version.')} - ) : - ( + ) : ( <>{gettext('Tips: These are tags of old version. The feature is deprecated and can no longer be used.')} ) - } + )}
); }; diff --git a/frontend/src/metadata/components/dialog/metadata-tags-status-dialog/index.js b/frontend/src/metadata/components/dialog/metadata-tags-status-dialog/index.js index af02775952..4346339e45 100644 --- a/frontend/src/metadata/components/dialog/metadata-tags-status-dialog/index.js +++ b/frontend/src/metadata/components/dialog/metadata-tags-status-dialog/index.js @@ -19,13 +19,11 @@ const langOptions = [ } ]; -const MetadataTagsStatusDialog = ({ value: oldValue, lang: oldLang, repoID, toggleDialog: toggle, submit, enableMetadata, showMigrateTip, usedRepoTags, onMigrateSuccess }) => { +const MetadataTagsStatusDialog = ({ value: oldValue, lang: oldLang, repoID, toggleDialog: toggle, submit, enableMetadata, showMigrateTip, usedRepoTags, onMigrateSuccess, onMigrateStart, onMigrateError }) => { const [value, setValue] = useState(oldValue); const [lang, setLang] = useState(oldLang); const [submitting, setSubmitting] = useState(false); - const [migrated, setMigrated] = useState(false); const [showTurnOffConfirmDialog, setShowTurnOffConfirmDialog] = useState(false); - const onToggle = useCallback(() => { toggle(); }, [toggle]); @@ -47,16 +45,16 @@ const MetadataTagsStatusDialog = ({ value: oldValue, lang: oldLang, repoID, togg }, [lang, repoID, submit, toggle, value]); const migrateTag = useCallback(() => { + onMigrateStart && onMigrateStart(); tagsAPI.migrateTags(repoID, usedRepoTags).then(res => { - setMigrated(true); toaster.success(gettext('Tags migrated successfully')); onMigrateSuccess && onMigrateSuccess(); }).catch(error => { const errorMsg = Utils.getErrorMsg(error); toaster.danger(errorMsg); - setMigrated(false); + onMigrateError && onMigrateError(); }); - }, [repoID, usedRepoTags, onMigrateSuccess]); + }, [repoID, usedRepoTags, onMigrateSuccess, onMigrateStart, onMigrateError]); const turnOffConfirmToggle = useCallback(() => { setShowTurnOffConfirmDialog(!showTurnOffConfirmDialog); @@ -122,9 +120,8 @@ const MetadataTagsStatusDialog = ({ value: oldValue, lang: oldLang, repoID, togg } @@ -153,6 +150,8 @@ MetadataTagsStatusDialog.propTypes = { showMigrateTip: PropTypes.bool, repoTags: PropTypes.array, onMigrateSuccess: PropTypes.func, + onMigrateError: PropTypes.func, + onMigrateStart: PropTypes.func, }; export default MetadataTagsStatusDialog;