From 19b82b1ed3a5c7e83c29fdd95b95fc912528b79b Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Fri, 17 Sep 2021 15:14:11 +0300 Subject: [PATCH] Web: Returned old solution with disabled context menu item. --- .../group-buttons-menu/index.js | 19 +- .../Client/src/store/FilesActionsStore.js | 193 ++++++++---------- 2 files changed, 92 insertions(+), 120 deletions(-) diff --git a/packages/asc-web-components/group-buttons-menu/index.js b/packages/asc-web-components/group-buttons-menu/index.js index c9b920916a..49f0336406 100644 --- a/packages/asc-web-components/group-buttons-menu/index.js +++ b/packages/asc-web-components/group-buttons-menu/index.js @@ -49,11 +49,9 @@ class GroupButtonsMenu extends React.Component { }; componentDidMount() { - this.groupMenuElement = document.getElementById("groupMenu"); + const groupMenuElement = document.getElementById("groupMenu"); - const groupMenuItems = this.groupMenuElement - ? this.groupMenuElement.children - : [0]; + const groupMenuItems = groupMenuElement ? groupMenuElement.children : [0]; const groupMenuItemsArray = [...groupMenuItems]; this.widthsArray = groupMenuItemsArray.map((item) => item.offsetWidth); @@ -75,19 +73,6 @@ class GroupButtonsMenu extends React.Component { this.state.moreItems.length !== prevState.moreItems.length || this.props.menuItems !== prevProps.menuItems ) { - if ( - this.state.priorityItems.length !== prevState.priorityItems.length && - this.props.sectionWidth === prevProps.sectionWidth && - this.state.moreItems.length === prevState.moreItems.length && - this.state.moreItems.length === 0 - ) { - const groupMenuItems = this.groupMenuElement - ? this.groupMenuElement.children - : [0]; - const groupMenuItemsArray = [...groupMenuItems]; - - this.widthsArray = groupMenuItemsArray.map((item) => item.offsetWidth); - } this.updateMenu(); } } diff --git a/products/ASC.Files/Client/src/store/FilesActionsStore.js b/products/ASC.Files/Client/src/store/FilesActionsStore.js index 50ff4e96b4..eeb265bf9d 100644 --- a/products/ASC.Files/Client/src/store/FilesActionsStore.js +++ b/products/ASC.Files/Client/src/store/FilesActionsStore.js @@ -693,120 +693,107 @@ class FilesActionStore { setEmptyTrashDialogVisible, } = this.dialogsStore; - const removeDownloadAs = !hasSelection || !isWebEditSelected; + const headerMenu = [ + { + label: t("Share"), + disabled: !isAccessedSelected, //isFavoritesFolder || isRecentFolder + onClick: () => setSharingPanelVisible(true), + }, + { + label: t("Common:Download"), + disabled: !hasSelection, + onClick: () => + this.downloadAction(t("Translations:ArchivingData")).catch((err) => + toastr.error(err) + ), + }, + { + label: t("Translations:DownloadAs"), + disabled: !hasSelection || !isWebEditSelected, + onClick: () => setDownloadDialogVisible(true), + }, + { + label: t("MoveTo"), + disabled: + isFavoritesFolder || + isRecentFolder || + !isAccessedSelected || + !hasSelection || + isThirdPartyRootSelection, + onClick: () => setMoveToPanelVisible(true), + }, + { + label: t("Translations:Copy"), + disabled: !hasSelection, + onClick: () => setCopyPanelVisible(true), + }, + { + label: t("Common:Delete"), + disabled: !hasSelection || isThirdPartyRootSelection, + onClick: () => { + if (this.settingsStore.confirmDelete) { + setDeleteDialogVisible(true); + } else { + const translations = { + deleteOperation: t("Translations:DeleteOperation"), + deleteFromTrash: t("Translations:DeleteFromTrash"), + deleteSelectedElem: t("Translations:DeleteSelectedElem"), + }; - const removeShare = !isAccessedSelected; //isFavoritesFolder || isRecentFolder - const removeDownload = !hasSelection; - - const removeMoveTo = - isFavoritesFolder || - isRecentFolder || - !isAccessedSelected || - !hasSelection || - isThirdPartyRootSelection; - - const removeCopy = !hasSelection; - const removeDelete = !hasSelection || isThirdPartyRootSelection; - - let itemsObj = new Map(); - - if (!removeShare) { - (!isPrivacyFolder || !this.authStore.settingsStore.personal) && - itemsObj.set("share", { - label: t("Share"), - onClick: () => setSharingPanelVisible(true), - }); - } - - if (!removeDownload) { - !isPrivacyFolder && - itemsObj.set("download", { - label: t("Common:Download"), - onClick: () => - this.downloadAction(t("Translations:ArchivingData")).catch((err) => - toastr.error(err) - ), - }); - } - - if (!removeDownloadAs) { - !isPrivacyFolder && - itemsObj.set("downloadAs", { - label: t("Translations:DownloadAs"), - onClick: () => setDownloadDialogVisible(true), - }); - } - - if (!removeMoveTo) { - !isRecycleBinFolder && - !isShareFolder && - !isRecentFolder && - !isFavoritesFolder && - itemsObj.set("moveTo", { - label: t("MoveTo"), - onClick: () => setMoveToPanelVisible(true), - }); - } - - if (!removeCopy) { - !isRecycleBinFolder && - itemsObj.set("copy", { - label: t("Translations:Copy"), - onClick: () => setCopyPanelVisible(true), - }); - } + this.deleteAction(translations).catch((err) => toastr.error(err)); + } + }, + }, + ]; if (isRecycleBinFolder) { - itemsObj.set("restore", { + headerMenu.push({ + label: t("EmptyRecycleBin"), + onClick: () => setEmptyTrashDialogVisible(true), + }); + + headerMenu.splice(3, 2, { label: t("Translations:Restore"), onClick: () => setMoveToPanelVisible(true), }); } - if (!removeDelete) { - if (isFavoritesFolder) { - itemsObj.set("delete", { - label: t("Common:Delete"), - alt: t("RemoveFromFavorites"), - onClick: () => { - const items = selection.map((item) => item.id); - this.setFavoriteAction("remove", items) - .then(() => toastr.success(t("RemovedFromFavorites"))) - .catch((err) => toastr.error(err)); - }, - }); - } else { - !isRecentFolder && - itemsObj.set("delete", { - label: t("Common:Delete"), - onClick: () => { - if (this.settingsStore.confirmDelete) { - setDeleteDialogVisible(true); - } else { - const translations = { - deleteOperation: t("Translations:DeleteOperation"), - deleteFromTrash: t("Translations:DeleteFromTrash"), - deleteSelectedElem: t("Translations:DeleteSelectedElem"), - }; - - this.deleteAction(translations).catch((err) => - toastr.error(err) - ); - } - }, - }); - } - } - - if (isRecycleBinFolder) { - itemsObj.set("emptyRecycleBin", { - label: t("EmptyRecycleBin"), - onClick: () => setEmptyTrashDialogVisible(true), + if (isFavoritesFolder) { + headerMenu.splice(5, 1); + headerMenu.push({ + label: t("Common:Delete"), + alt: t("RemoveFromFavorites"), + onClick: () => { + const items = selection.map((item) => item.id); + this.setFavoriteAction("remove", items) + .then(() => toastr.success(t("RemovedFromFavorites"))) + .catch((err) => toastr.error(err)); + }, }); } - const headerMenu = Array.from(itemsObj.values()); - itemsObj.clear(); + if (isPrivacyFolder) { + headerMenu.splice(0, 1); + headerMenu.splice(1, 1); + headerMenu.splice(2, 1); + } + + if (isShareFolder) { + headerMenu.splice(3, 1); + } + + if (isRecentFolder) { + headerMenu.splice(5, 1); + } + + if (isRecentFolder || isFavoritesFolder) { + //headerMenu.splice(0, 1); TODO: need for develop + headerMenu.splice(3, 1); + } + + if (this.authStore.settingsStore.personal) { + headerMenu.splice(0, 1); + } return headerMenu; };