Fix Bug 52035 - Fixed actions in the header for third-party files, fixed context-menu for third-party files
This commit is contained in:
parent
c295f1a77c
commit
1d0fbcc13b
@ -193,11 +193,19 @@ export default function withContextOptions(WrappedComponent) {
|
||||
setDeleteThirdPartyDialogVisible,
|
||||
t,
|
||||
deleteItemAction,
|
||||
isThirdPartyFolder,
|
||||
} = this.props;
|
||||
const { id, title, fileExst, contentLength, folderId } = item;
|
||||
const {
|
||||
id,
|
||||
title,
|
||||
fileExst,
|
||||
contentLength,
|
||||
folderId,
|
||||
providerKey,
|
||||
rootFolderId,
|
||||
} = item;
|
||||
const isRootThirdPartyFolder = providerKey && id === rootFolderId;
|
||||
|
||||
if (isThirdPartyFolder) {
|
||||
if (isRootThirdPartyFolder) {
|
||||
const splitItem = id.split("-");
|
||||
setRemoveItem({ id: splitItem[splitItem.length - 1], title });
|
||||
setDeleteThirdPartyDialogVisible(true);
|
||||
@ -210,7 +218,13 @@ export default function withContextOptions(WrappedComponent) {
|
||||
successRemoveFolder: t("FolderRemoved"),
|
||||
};
|
||||
|
||||
deleteItemAction(id, folderId, translations, fileExst || contentLength);
|
||||
deleteItemAction(
|
||||
id,
|
||||
folderId,
|
||||
translations,
|
||||
fileExst || contentLength,
|
||||
providerKey
|
||||
);
|
||||
};
|
||||
|
||||
onClickShare = () => {
|
||||
@ -234,8 +248,10 @@ export default function withContextOptions(WrappedComponent) {
|
||||
};
|
||||
|
||||
getFilesContextOptions = () => {
|
||||
const { item, t, isThirdPartyFolder } = this.props;
|
||||
const { item, t } = this.props;
|
||||
const { contextOptions } = item;
|
||||
const isRootThirdPartyFolder =
|
||||
item.providerKey && item.id === item.rootFolderId;
|
||||
|
||||
const isShareable = item.canShare;
|
||||
|
||||
@ -418,7 +434,7 @@ export default function withContextOptions(WrappedComponent) {
|
||||
case "delete":
|
||||
return {
|
||||
key: option,
|
||||
label: isThirdPartyFolder
|
||||
label: isRootThirdPartyFolder
|
||||
? t("Translations:DeleteThirdParty")
|
||||
: t("Common:Delete"),
|
||||
icon: "/static/images/catalog.trash.react.svg",
|
||||
@ -489,7 +505,6 @@ export default function withContextOptions(WrappedComponent) {
|
||||
auth,
|
||||
versionHistoryStore,
|
||||
mediaViewerDataStore,
|
||||
selectedFolderStore,
|
||||
dialogsStore,
|
||||
treeFoldersStore,
|
||||
},
|
||||
@ -524,10 +539,8 @@ export default function withContextOptions(WrappedComponent) {
|
||||
const { setIsVerHistoryPanel, fetchFileVersions } = versionHistoryStore;
|
||||
const { setAction, type, extension, id } = fileActionStore;
|
||||
const { setMediaViewerData } = mediaViewerDataStore;
|
||||
const { isRootFolder } = selectedFolderStore;
|
||||
const { isRecycleBinFolder, isShare } = treeFoldersStore;
|
||||
|
||||
const isThirdPartyFolder = item.providerKey && isRootFolder;
|
||||
const { isRecycleBinFolder, isShare } = treeFoldersStore;
|
||||
const isShareFolder = isShare(item.rootFolderType);
|
||||
|
||||
return {
|
||||
@ -552,7 +565,6 @@ export default function withContextOptions(WrappedComponent) {
|
||||
setRemoveItem,
|
||||
setDeleteThirdPartyDialogVisible,
|
||||
deleteItemAction,
|
||||
isThirdPartyFolder,
|
||||
onSelectItem,
|
||||
setSharingPanelVisible,
|
||||
actionType: type,
|
||||
|
@ -66,7 +66,13 @@ const FilesMediaViewer = (props) => {
|
||||
let file = files.find((file) => file.id === id);
|
||||
if (file) {
|
||||
setRemoveMediaItem(file);
|
||||
deleteItemAction(file.id, selectedFolderId, translations, true);
|
||||
deleteItemAction(
|
||||
file.id,
|
||||
selectedFolderId,
|
||||
translations,
|
||||
true,
|
||||
file.providerKey
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -226,9 +226,10 @@ class SectionHeaderContent extends React.Component {
|
||||
deleteAction,
|
||||
confirmDelete,
|
||||
setDeleteDialogVisible,
|
||||
isThirdPartySelection,
|
||||
} = this.props;
|
||||
|
||||
if (confirmDelete) {
|
||||
if (confirmDelete || isThirdPartySelection) {
|
||||
setDeleteDialogVisible(true);
|
||||
} else {
|
||||
const translations = {
|
||||
@ -325,16 +326,16 @@ class SectionHeaderContent extends React.Component {
|
||||
selectionCount,
|
||||
isAccessedSelected,
|
||||
isWebEditSelected,
|
||||
isViewedSelected,
|
||||
isMediaSelected,
|
||||
// isViewedSelected,
|
||||
// isMediaSelected,
|
||||
deleteDialogVisible,
|
||||
isRecycleBin,
|
||||
isThirdPartySelection,
|
||||
isThirdPartyRootSelection,
|
||||
isPrivacy,
|
||||
isFavoritesFolder,
|
||||
isRecentFolder,
|
||||
isShareFolder,
|
||||
personal,
|
||||
// personal,
|
||||
} = this.props;
|
||||
|
||||
let menu = [
|
||||
@ -415,7 +416,7 @@ class SectionHeaderContent extends React.Component {
|
||||
isRecentFolder ||
|
||||
!isAccessedSelected ||
|
||||
!selectionCount ||
|
||||
isThirdPartySelection,
|
||||
isThirdPartyRootSelection,
|
||||
onClick: this.onMoveAction,
|
||||
},
|
||||
{
|
||||
@ -426,7 +427,7 @@ class SectionHeaderContent extends React.Component {
|
||||
{
|
||||
label: t("Common:Delete"),
|
||||
disabled:
|
||||
!selectionCount || !deleteDialogVisible || isThirdPartySelection,
|
||||
!selectionCount || !deleteDialogVisible || isThirdPartyRootSelection,
|
||||
onClick: this.onDeleteAction,
|
||||
},
|
||||
];
|
||||
@ -626,6 +627,7 @@ export default inject(
|
||||
isHeaderChecked,
|
||||
userAccess,
|
||||
isAccessedSelected,
|
||||
isThirdPartyRootSelection,
|
||||
isThirdPartySelection,
|
||||
isWebEditSelected,
|
||||
setIsLoading,
|
||||
@ -674,6 +676,7 @@ export default inject(
|
||||
isHeaderChecked,
|
||||
deleteDialogVisible: userAccess,
|
||||
isAccessedSelected,
|
||||
isThirdPartyRootSelection,
|
||||
isThirdPartySelection,
|
||||
isWebEditSelected,
|
||||
isViewedSelected,
|
||||
|
@ -319,13 +319,20 @@ class FilesActionStore {
|
||||
setSelection([item]);
|
||||
};
|
||||
|
||||
deleteItemAction = (itemId, currentFolderId, translations, isFile) => {
|
||||
deleteItemAction = (
|
||||
itemId,
|
||||
currentFolderId,
|
||||
translations,
|
||||
isFile,
|
||||
isThirdParty
|
||||
) => {
|
||||
const {
|
||||
setSecondaryProgressBarData,
|
||||
} = this.uploadDataStore.secondaryProgressDataStore;
|
||||
if (
|
||||
this.settingsStore.confirmDelete ||
|
||||
this.treeFoldersStore.isPrivacyFolder
|
||||
this.treeFoldersStore.isPrivacyFolder ||
|
||||
isThirdParty
|
||||
) {
|
||||
this.dialogsStore.setDeleteDialogVisible(true);
|
||||
} else {
|
||||
|
@ -410,10 +410,8 @@ class FilesStore {
|
||||
|
||||
const { canWebEdit, canViewedDocs } = this.formatsStore.docserviceStore;
|
||||
|
||||
const { isRootFolder } = this.selectedFolderStore;
|
||||
|
||||
const isThirdPartyFolder = item.providerKey && isRootFolder;
|
||||
|
||||
const isThirdPartyFolder =
|
||||
item.providerKey && item.id === item.rootFolderId;
|
||||
const isShareItem = isShare(item.rootFolderType);
|
||||
const isCommonFolder = isCommon(item.rootFolderType);
|
||||
|
||||
@ -1221,9 +1219,14 @@ class FilesStore {
|
||||
);
|
||||
}
|
||||
|
||||
get isThirdPartyRootSelection() {
|
||||
const withProvider = this.selection.find((x) => x.providerKey);
|
||||
return withProvider && withProvider.rootFolderId === withProvider.id;
|
||||
}
|
||||
|
||||
get isThirdPartySelection() {
|
||||
const withProvider = this.selection.find((x) => !x.providerKey);
|
||||
return !withProvider && this.selectedFolderStore.isRootFolder;
|
||||
const withProvider = this.selection.find((x) => x.providerKey);
|
||||
return !!withProvider;
|
||||
}
|
||||
|
||||
get isWebEditSelected() {
|
||||
|
Loading…
Reference in New Issue
Block a user