diff --git a/products/ASC.Files/Client/src/components/panels/SelectionPanel/SelectionPanelBody.js b/products/ASC.Files/Client/src/components/panels/SelectionPanel/SelectionPanelBody.js index 95f31c676b..030fad1e53 100644 --- a/products/ASC.Files/Client/src/components/panels/SelectionPanel/SelectionPanelBody.js +++ b/products/ASC.Files/Client/src/components/panels/SelectionPanel/SelectionPanelBody.js @@ -246,7 +246,7 @@ class SelectionPanel extends React.Component { const foldersTree = treeFoldersLength > 0 ? treeFolders : requestedTreeFolders; - const passedId = id ? id : foldersTree[0].id; + const passedId = id ? id : foldersTree[0]?.id; if (foldersType === "third-party") { isFilesPanel && onSetBaseFolderPath && onSetBaseFolderPath(passedId); diff --git a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/StyledBackup.js b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/StyledBackup.js index 1db6f0e18d..10ea1780fb 100644 --- a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/StyledBackup.js +++ b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/StyledBackup.js @@ -121,6 +121,21 @@ const StyledManualBackup = styled.div` const StyledAutoBackup = styled.div` ${commonStyles} + .auto-backup_third-party-module { + margin-top: 16px; + margin-left: 24px; + .auto-backup_connection { + display: flex; + } + .auto-backup_third-party-combo { + max-width: 234px; + margin-right: 8px; + } + p { + margin-top: 16px; + max-width: 350px; + } + } .automatic-backup_main { margin-bottom: 30px; diff --git a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/index.js b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/index.js index 820708ee90..796762c937 100644 --- a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/index.js +++ b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/index.js @@ -370,13 +370,15 @@ class AutomaticBackup extends React.PureComponent { theme, renderTooltip, selectedEnableSchedule, + isDocSpace, } = this.props; const { isInitialLoading, isLoadingData, isError } = this.state; - const isDisabledThirdPartyList = isCheckedThirdParty - ? false - : commonThirdPartyList?.length === 0; + const isDisabledThirdPartyList = + isCheckedThirdParty || isDocSpace + ? false + : commonThirdPartyList?.length === 0; const commonProps = { isLoadingData, @@ -532,7 +534,7 @@ const { organizationName, theme } = settingsStore; const isCheckedThirdParty = selectedStorageType === `${ResourcesModuleType}`; const isCheckedThirdPartyStorage = selectedStorageType === `${StorageModuleType}`; - + const isDocSpace = true; return { theme, language, @@ -571,5 +573,6 @@ const { organizationName, theme } = settingsStore; resetStorageSettings, setSelectedEnableSchedule, selectedEnableSchedule, + isDocSpace, }; })(withTranslation(["Settings", "Common"])(observer(AutomaticBackup))); diff --git a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/sub-components/ThirdPartyModule.js b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/sub-components/ThirdPartyModule.js index de0b8f71cb..d4a78c69f0 100644 --- a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/sub-components/ThirdPartyModule.js +++ b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/auto-backup/sub-components/ThirdPartyModule.js @@ -4,13 +4,40 @@ import { inject, observer } from "mobx-react"; import { BackupStorageType } from "@appserver/common/constants"; import SelectFolderInput from "files/SelectFolderInput"; import ScheduleComponent from "./ScheduleComponent"; +import ComboBox from "@appserver/components/combobox"; +import Button from "@appserver/components/button"; +import Text from "@appserver/components/text"; class ThirdPartyModule extends React.PureComponent { constructor(props) { super(props); - const { setSelectedFolder, isResourcesDefault } = props; + const { setSelectedFolder, isResourcesDefault, isDocSpace } = props; + + if (isDocSpace) { + this.accounts = [ + { + key: "0", + label: "Google Drive", + }, + { + key: "1", + label: "OneDrive ", + }, + { + key: "2", + label: "Dropbox ", + }, + { + key: "3", + label: "Box.com", + }, + ]; + } + this.state = { isPanelVisible: false, + ...(isDocSpace && { selectedAccount: this.accounts[0] }), + isConnected: false, }; !isResourcesDefault && setSelectedFolder(""); } @@ -32,8 +59,26 @@ class ThirdPartyModule extends React.PureComponent { setSelectedFolder(`${id}`); }; + onConnect = () => { + const { isConnected } = this.state; + + this.setState({ isConnected: !isConnected }); + }; + + onCopyingDirectly = () => { + console.log("copy"); + }; + onSelectAccount = (options) => { + const key = options.key; + const label = options.label; + + this.setState({ + selectedAccount: { key, label }, + }); + }; + render() { - const { isPanelVisible } = this.state; + const { isPanelVisible, selectedAccount, isConnected } = this.state; const { isError, isLoadingData, @@ -41,27 +86,74 @@ class ThirdPartyModule extends React.PureComponent { isSuccessSave, passedId, commonThirdPartyList, + isDocSpace, + isResourcesDefault, + + t, ...rest } = this.props; - + console.log(isLoadingData, !isConnected); return ( <> -
- -
+ {!isDocSpace ? ( +
+ +
+ ) : ( +
+
+ + +
+ {"Folder name:"} + + +
+ )} ); @@ -71,7 +163,7 @@ class ThirdPartyModule extends React.PureComponent { export default inject(({ backup }) => { const { setSelectedFolder, - selectedFolderId, + //selectedFolderId, defaultStorageType, commonThirdPartyList, defaultFolderId, @@ -81,11 +173,12 @@ export default inject(({ backup }) => { defaultStorageType === `${BackupStorageType.ResourcesModuleType}`; const passedId = isResourcesDefault ? defaultFolderId : ""; - + const isDocSpace = true; return { setSelectedFolder, passedId, commonThirdPartyList, isResourcesDefault, + isDocSpace, }; -})(withTranslation("Settings")(observer(ThirdPartyModule))); +})(withTranslation(["Settings", "Common"])(observer(ThirdPartyModule))); diff --git a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/manual-backup/sub-components/ThirdPartyModule.js b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/manual-backup/sub-components/ThirdPartyModule.js index fc75750133..72d2f113d0 100644 --- a/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/manual-backup/sub-components/ThirdPartyModule.js +++ b/web/ASC.Web.Client/src/components/pages/Settings/categories/data-management/backup/manual-backup/sub-components/ThirdPartyModule.js @@ -148,7 +148,7 @@ class ThirdPartyModule extends React.Component { } = this.state; const isModuleDisabled = !isMaxProgress || isStartCopy || isLoadingData; - console.log(selectedFolder); + return !isDocSpace ? ( <>