{
+ const { visible, setIsVisible, backupToPublicRoomData } = props;
+ const { t, ready } = useTranslation(["Files", "Common"]);
+
+ useEffect(() => {
+ document.addEventListener("keyup", onKeyUp, false);
+
+ return () => {
+ document.removeEventListener("keyup", onKeyUp, false);
+ };
+ }, []);
+
+ const onKeyUp = (e) => {
+ if (e.keyCode === 27) onClose();
+ if (e.keyCode === 13 || e.which === 13) onMoveTo();
+ };
+
+ const onClose = () => {
+ setIsVisible(false);
+ };
+
+ const onBackupTo = () => {
+ const {
+ selectedItemId,
+ breadCrumbs,
+ onSelectFolder,
+ onClose: onCloseAction,
+ } = backupToPublicRoomData;
+
+ onSelectFolder && onSelectFolder(selectedItemId, breadCrumbs);
+
+ onClose();
+ onCloseAction();
+ };
+
+ return (
+
+ {t("Common:SaveToPublicRoom")}
+
+
+ {t("Files:MoveToPublicRoom")}
+
+
+
+
+
+
+
+ );
+};
+
+export default inject(({ dialogsStore }) => {
+ const {
+ backupToPublicRoomVisible,
+ setBackupToPublicRoomVisible,
+ backupToPublicRoomData,
+ } = dialogsStore;
+
+ return {
+ visible: backupToPublicRoomVisible,
+ setIsVisible: setBackupToPublicRoomVisible,
+
+ backupToPublicRoomData,
+ };
+})(observer(BackupToPublicRoomComponent));
diff --git a/packages/client/src/components/dialogs/index.js b/packages/client/src/components/dialogs/index.js
index 6ce2db1c83..a407635a5f 100644
--- a/packages/client/src/components/dialogs/index.js
+++ b/packages/client/src/components/dialogs/index.js
@@ -34,6 +34,7 @@ import UnsavedChangesDialog from "./UnsavedChangesDialog";
import DeleteLinkDialog from "./DeleteLinkDialog";
import RoomSharingDialog from "./RoomSharingDialog";
import MoveToPublicRoom from "./MoveToPublicRoom";
+import BackupToPublicRoom from "./BackupToPublicRoom";
import SettingsPluginDialog from "./SettingsPluginDialog";
import ReportDialog from "./ReportDialog";
import PluginDialog from "./PluginDialog";
@@ -76,6 +77,7 @@ export {
DeleteLinkDialog,
RoomSharingDialog,
MoveToPublicRoom,
+ BackupToPublicRoom,
SettingsPluginDialog,
ReportDialog,
PluginDialog,
diff --git a/packages/client/src/pages/PortalSettings/categories/data-management/backup/auto-backup/sub-components/RoomsModule.js b/packages/client/src/pages/PortalSettings/categories/data-management/backup/auto-backup/sub-components/RoomsModule.js
index 127f4a848b..02cb500ff7 100644
--- a/packages/client/src/pages/PortalSettings/categories/data-management/backup/auto-backup/sub-components/RoomsModule.js
+++ b/packages/client/src/pages/PortalSettings/categories/data-management/backup/auto-backup/sub-components/RoomsModule.js
@@ -32,6 +32,7 @@ class RoomsModule extends React.PureComponent {
withoutInitPath={!isDocumentsDefault}
isError={isError}
isDisabled={isLoadingData}
+ isRoomBackup
/>
diff --git a/packages/client/src/pages/PortalSettings/categories/data-management/backup/manual-backup/sub-components/RoomsModule.js b/packages/client/src/pages/PortalSettings/categories/data-management/backup/manual-backup/sub-components/RoomsModule.js
index 74f0cecd0f..90cd2f9d38 100644
--- a/packages/client/src/pages/PortalSettings/categories/data-management/backup/manual-backup/sub-components/RoomsModule.js
+++ b/packages/client/src/pages/PortalSettings/categories/data-management/backup/manual-backup/sub-components/RoomsModule.js
@@ -66,6 +66,7 @@ class RoomsModule extends React.Component {
{...(selectedFolder && { id: selectedFolder })}
withoutInitPath={!selectedFolder}
isDisabled={isModuleDisabled}
+ isRoomBackup
/>
diff --git a/packages/client/src/store/DialogsStore.js b/packages/client/src/store/DialogsStore.js
index af923b0fc5..541a041291 100644
--- a/packages/client/src/store/DialogsStore.js
+++ b/packages/client/src/store/DialogsStore.js
@@ -31,6 +31,8 @@ class DialogsStore {
unsavedChangesDialogVisible = false;
moveToPublicRoomVisible = false;
moveToPublicRoomData = null;
+ backupToPublicRoomVisible = false;
+ backupToPublicRoomData = null;
isFolderActions = false;
roomCreation = false;
culture = {
@@ -426,7 +428,10 @@ class DialogsStore {
this.moveToPublicRoomVisible = visible;
this.moveToPublicRoomData = data;
};
-
+ setBackupToPublicRoomVisible = (visible, data = null) => {
+ this.backupToPublicRoomVisible = visible;
+ this.backupToPublicRoomData = data;
+ };
deselectActiveFiles = () => {
this.filesStore.setSelected("none");
};
diff --git a/public/locales/en/Common.json b/public/locales/en/Common.json
index 33c260a394..67c32b48c6 100644
--- a/public/locales/en/Common.json
+++ b/public/locales/en/Common.json
@@ -264,6 +264,7 @@
"SAT": "SAT",
"SaveButton": "Save",
"SaveHereButton": "Save here",
+ "SaveToPublicRoom": "Save to Public room",
"Search": "Search",
"SearchEmptyRoomsDescription": "No rooms match this filter. Try a different one or clear filter to view all rooms.",
"SelectAction": "Select",