From a763087b782c3c1b0f26a2e4f79bf6021f63eb61 Mon Sep 17 00:00:00 2001 From: TimofeyBoyko Date: Thu, 10 Nov 2022 13:18:55 +0300 Subject: [PATCH] Web:Client: add Archive dialog for archive rooms and restore rooms operations --- .../public/locales/en/ArchiveDialog.json | 8 ++ .../public/locales/en/DeleteDialog.json | 2 - .../locales/en/RestoreArchiveDialog.json | 5 -- packages/client/src/HOCs/withHotkeys.js | 8 +- .../src/components/FilesPanels/index.js | 12 ++- .../index.js | 75 +++++++++++++------ .../src/pages/Home/Section/Header/index.js | 9 ++- .../client/src/store/ContextOptionsStore.js | 25 +++++-- packages/client/src/store/DialogsStore.js | 18 ++--- .../client/src/store/FilesActionsStore.js | 29 ++----- 10 files changed, 107 insertions(+), 84 deletions(-) create mode 100644 packages/client/public/locales/en/ArchiveDialog.json delete mode 100644 packages/client/public/locales/en/RestoreArchiveDialog.json rename packages/client/src/components/dialogs/{RestoreArchiveDialog => ArchiveDialog}/index.js (58%) diff --git a/packages/client/public/locales/en/ArchiveDialog.json b/packages/client/public/locales/en/ArchiveDialog.json new file mode 100644 index 0000000000..8c23664c5a --- /dev/null +++ b/packages/client/public/locales/en/ArchiveDialog.json @@ -0,0 +1,8 @@ +{ + "ArchiveHeader": "Move to Archived?", + "ArchiveRoom": "You are about to archive a room. Are you sure you want to continue?", + "ArchiveRooms": "You are about to archive rooms. Are you sure you want to continue?", + "RestoreRoom": "Are you sure you want to restore room?", + "RestoreRooms": "Are you sure you want to restore rooms?", + "RestoreAllRooms": "Are you sure you want to restore all rooms?" +} diff --git a/packages/client/public/locales/en/DeleteDialog.json b/packages/client/public/locales/en/DeleteDialog.json index d1262edc10..665877e1d8 100644 --- a/packages/client/public/locales/en/DeleteDialog.json +++ b/packages/client/public/locales/en/DeleteDialog.json @@ -1,6 +1,4 @@ { - "MoveToArchiveTitle": "Move to Archived", - "MoveToArchiveDescription": "You are about to archive a room. Are you sure you want to continue?", "MoveToTrashButton": "Move to Trash", "MoveToTrashFile": "You are about to delete this file? Please note, that if you have shared it with someone, it will become unavailable. Are you sure you want to continue?", "MoveToTrashFolder": "You are about to delete this folder? Please note, that if you have shared it with someone, it will become unavailable. Are you sure you want to continue?", diff --git a/packages/client/public/locales/en/RestoreArchiveDialog.json b/packages/client/public/locales/en/RestoreArchiveDialog.json deleted file mode 100644 index c2cc39d6d4..0000000000 --- a/packages/client/public/locales/en/RestoreArchiveDialog.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "RestoreArchive": "Are you sure you want to restore room?", - "RestoreArchives": "Are you sure you want to restore rooms?", - "RestoreAllArchives": "Are you sure you want to restore all rooms?" -} diff --git a/packages/client/src/HOCs/withHotkeys.js b/packages/client/src/HOCs/withHotkeys.js index 56f84d4d66..a8c92f14d5 100644 --- a/packages/client/src/HOCs/withHotkeys.js +++ b/packages/client/src/HOCs/withHotkeys.js @@ -55,7 +55,7 @@ const withHotkeys = (Component) => { isVisitor, deleteRooms, - moveRoomsToArchive, + archiveRooms, } = props; const hotkeysFilter = { @@ -260,7 +260,7 @@ const withHotkeys = (Component) => { } if (isRoomsFolder) { - isAvailableOption("archive") && moveRoomsToArchive(t); + isAvailableOption("archive") && archiveRooms("archive"); return; } @@ -394,7 +394,7 @@ const withHotkeys = (Component) => { backToParentFolder, setFavoriteAction, deleteRooms, - moveRoomsToArchive, + archiveRooms, } = filesActionsStore; const { visible: mediaViewerIsVisible } = mediaViewerDataStore; @@ -456,7 +456,7 @@ const withHotkeys = (Component) => { isVisitor, deleteRooms, - moveRoomsToArchive, + archiveRooms, }; } )(observer(WithHotkeys)); diff --git a/packages/client/src/components/FilesPanels/index.js b/packages/client/src/components/FilesPanels/index.js index ede41eb9ae..513f2abab1 100644 --- a/packages/client/src/components/FilesPanels/index.js +++ b/packages/client/src/components/FilesPanels/index.js @@ -26,7 +26,7 @@ import { InviteUsersWarningDialog, } from "../dialogs"; import ConvertPasswordDialog from "../dialogs/ConvertPasswordDialog"; -import RestoreArchiveDialog from "../dialogs/RestoreArchiveDialog"; +import ArchiveDialog from "../dialogs/ArchiveDialog"; const Panels = (props) => { const { @@ -54,7 +54,7 @@ const Panels = (props) => { convertPasswordDialogVisible, createRoomDialogVisible, restoreAllPanelVisible, - restoreArchiveDialogVisible, + archiveDialogVisible, inviteUsersWarningDialogVisible, } = props; @@ -121,9 +121,7 @@ const Panels = (props) => { convertPasswordDialogVisible && ( ), - restoreArchiveDialogVisible && ( - - ), + archiveDialogVisible && , inviteUsersWarningDialogVisible && ( ), @@ -151,7 +149,7 @@ export default inject( convertPasswordDialogVisible, connectItem, //TODO: restoreAllPanelVisible, - restoreArchiveDialogVisible, + archiveDialogVisible, createMasterForm, selectFileDialogVisible, @@ -189,7 +187,7 @@ export default inject( hotkeyPanelVisible, restoreAllPanelVisible, invitePanelVisible: invitePanelOptions.visible, - restoreArchiveDialogVisible, + archiveDialogVisible, inviteUsersWarningDialogVisible, }; } diff --git a/packages/client/src/components/dialogs/RestoreArchiveDialog/index.js b/packages/client/src/components/dialogs/ArchiveDialog/index.js similarity index 58% rename from packages/client/src/components/dialogs/RestoreArchiveDialog/index.js rename to packages/client/src/components/dialogs/ArchiveDialog/index.js index df40a6aa9f..4226acb174 100644 --- a/packages/client/src/components/dialogs/RestoreArchiveDialog/index.js +++ b/packages/client/src/components/dialogs/ArchiveDialog/index.js @@ -17,16 +17,18 @@ const StyledModal = styled(ModalDialogContainer)` } `; -const RestoreArchiveDialogComponent = (props) => { +const ArchiveDialogComponent = (props) => { const { t, tReady, visible, restoreAll, + action, - setRestoreArchiveDialogVisible, + setArchiveDialogVisible, setRestoreAllArchive, + setArchiveActionType, setArchiveAction, items, @@ -43,14 +45,15 @@ const RestoreArchiveDialogComponent = (props) => { const onClose = () => { if (!requestRunning) { setRestoreAllArchive(false); - setRestoreArchiveDialogVisible(false); + setArchiveActionType(null); + setArchiveDialogVisible(false); } }; - const onRestore = () => { + const onAction = () => { setRequestRunning(true); - setArchiveAction("unarchive", items, t).then(() => { + setArchiveAction(action, items, t).then(() => { setRequestRunning(false); onClose(); }); @@ -58,13 +61,33 @@ const RestoreArchiveDialogComponent = (props) => { const onKeyPress = (e) => { if (e.keyCode === 13) { - onRestore(); + onAction(); } }; - const description = restoreAll - ? t("RestoreArchiveDialog:RestoreAllArchives") - : "work at progress"; + const getDescription = () => { + if (restoreAll) return t("ArchiveDialog:RestoreAllRooms"); + + if (action === "archive") { + return items.length > 1 + ? t("ArchiveDialog:ArchiveRooms") + : t("ArchiveDialog:ArchiveRoom"); + } + + if (action === "unarchive") { + return items.length > 1 + ? t("ArchiveDialog:RestoreRooms") + : t("ArchiveDialog:RestoreRoom"); + } + }; + + const header = + action === "archive" + ? t("ArchiveDialog:ArchiveHeader") + : t("Common:Restore"); + const description = getDescription(); + const acceptButton = + action === "archive" ? t("Common:OKButton") : t("Common:Restore"); return ( { onClose={onClose} displayType="modal" > - {t("Common:Restore")} + {header} {description}