Web: Settings: Backup: Refactoring.

This commit is contained in:
Tatiana Lopaeva 2021-05-17 14:46:01 +03:00
parent 54fa2309f4
commit 8d971cc286
4 changed files with 55 additions and 153 deletions

View File

@ -196,6 +196,7 @@ class TreeFolders extends React.Component {
}; };
getItems = (data) => { getItems = (data) => {
const { withoutProvider } = this.props;
return data.map((item) => { return data.map((item) => {
const dragging = this.props.dragging ? this.showDragItems(item) : false; const dragging = this.props.dragging ? this.showDragItems(item) : false;
@ -205,6 +206,9 @@ class TreeFolders extends React.Component {
const provider = item.providerKey; const provider = item.providerKey;
const serviceFolder = !!item.providerKey; const serviceFolder = !!item.providerKey;
let className = `tree-drag tree-id_${item.id}`; let className = `tree-drag tree-id_${item.id}`;
if (withoutProvider && provider) return;
if (dragging) className += " dragging"; if (dragging) className += " dragging";
if ((item.folders && item.folders.length > 0) || serviceFolder) { if ((item.folders && item.folders.length > 0) || serviceFolder) {
return ( return (
@ -261,78 +265,6 @@ class TreeFolders extends React.Component {
}); });
}; };
getCommonItems = (data) => {
//debugger;
return data.map((item) => {
const dragging = this.props.dragging ? this.showDragItems(item) : false;
const showBadge = item.newItems
? item.newItems > 0 && this.props.needUpdate
: false;
const provider = item.providerKey;
const serviceFolder = !!item.providerKey;
let className = `tree-drag tree-id_${item.id}`;
if (dragging) className += " dragging";
if (provider) return;
if ((item.folders && item.folders.length > 0) || serviceFolder) {
return !provider ? (
<TreeNode
id={item.id}
key={item.id}
className={className}
title={item.title}
needTopMargin={item.rootFolderType === FolderType.Privacy}
icon={this.getFolderIcon(item)}
dragging={dragging}
isLeaf={
item.rootFolderType === FolderType.Privacy &&
!this.props.isDesktop
? true
: null
}
newItems={
!this.props.isDesktop &&
item.rootFolderType === FolderType.Privacy
? null
: item.newItems
}
providerKey={item.providerKey}
onBadgeClick={this.onBadgeClick}
showBadge={showBadge}
>
{item.rootFolderType === FolderType.Privacy && !this.props.isDesktop
? null
: this.getCommonItems(item.folders ? item.folders : [])}
</TreeNode>
) : (
<></>
);
}
return !provider ? (
<TreeNode
id={item.id}
key={item.id}
className={className}
title={item.title}
needTopMargin={item.rootFolderType === FolderType.TRASH}
dragging={dragging}
isLeaf={item.foldersCount ? false : true}
icon={this.getFolderIcon(item)}
newItems={
!this.props.isDesktop && item.rootFolderType === FolderType.Privacy
? null
: item.newItems
}
providerKey={item.providerKey}
onBadgeClick={this.onBadgeClick}
showBadge={showBadge}
/>
) : (
<></>
);
});
};
switcherIcon = (obj) => { switcherIcon = (obj) => {
if (obj.isLeaf) { if (obj.isLeaf) {
return null; return null;
@ -507,7 +439,6 @@ class TreeFolders extends React.Component {
expandedPanelKeys, expandedPanelKeys,
treeFolders, treeFolders,
data, data,
isCommonWithoutProvider,
} = this.props; } = this.props;
//debugger; //debugger;
return ( return (
@ -532,9 +463,7 @@ class TreeFolders extends React.Component {
gapBetweenNodesTablet="26" gapBetweenNodesTablet="26"
isFullFillSelection={false} isFullFillSelection={false}
> >
{isCommonWithoutProvider {this.getItems(data || treeFolders)}
? this.getCommonItems(data)
: this.getItems(data || treeFolders)}
</StyledTreeMenu> </StyledTreeMenu>
); );
} }

View File

@ -203,7 +203,7 @@ class OperationsDialog extends React.PureComponent {
filter={filter} filter={filter}
onSelect={this.onSelect} onSelect={this.onSelect}
needUpdate={false} needUpdate={false}
isCommonWithoutProvider={isCommonWithoutProvider} withoutProvider={isCommonWithoutProvider}
/> />
) : ( ) : (
<div key="loader" className="panel-loader-wrapper"> <div key="loader" className="panel-loader-wrapper">

View File

@ -1,4 +1,4 @@
import React, { useEffect } from "react"; import React from "react";
import { withRouter } from "react-router"; import { withRouter } from "react-router";
import ModalDialog from "@appserver/components/modal-dialog"; import ModalDialog from "@appserver/components/modal-dialog";
import { withTranslation } from "react-i18next"; import { withTranslation } from "react-i18next";
@ -24,17 +24,13 @@ const OperationsPanelComponent = (props) => {
setMoveToPanelVisible, setMoveToPanelVisible,
checkOperationConflict, checkOperationConflict,
setThirdPartyMoveDialogVisible, setThirdPartyMoveDialogVisible,
commonFolder,
getCommonFolder,
commonTreeFolder,
} = props; } = props;
useEffect(() => getCommonFolder(), []);
const zIndex = 310; const zIndex = 310;
const deleteAfter = true; // TODO: get from settings const deleteAfter = true; // TODO: get from settings
const expandedKeys = props.expandedKeys.map((item) => item.toString()); const expandedKeys = props.expandedKeys.map((item) => item.toString());
//const expandedKeys = ["1"];
const onClose = () => { const onClose = () => {
isCopy ? setCopyPanelVisible(false) : setMoveToPanelVisible(false); isCopy ? setCopyPanelVisible(false) : setMoveToPanelVisible(false);
setExpandedPanelKeys(null); setExpandedPanelKeys(null);
@ -98,7 +94,6 @@ const OperationsPanelComponent = (props) => {
}; };
//console.log("Operations panel render"); //console.log("Operations panel render");
console.log("commonTreeFolder", commonTreeFolder);
return ( return (
<StyledAsidePanel visible={visible}> <StyledAsidePanel visible={visible}>
<ModalDialog <ModalDialog
@ -129,29 +124,22 @@ const OperationsPanel = withTranslation("OperationsPanel")(
); );
export default inject( export default inject(
( ({
{ filesStore,
filesStore, treeFoldersStore,
treeFoldersStore, selectedFolderStore,
selectedFolderStore, dialogsStore,
dialogsStore, filesActionsStore,
filesActionsStore, }) => {
},
commonTreeFolder
) => {
const { filter, selection } = filesStore; const { filter, selection } = filesStore;
const { const {
isRecycleBinFolder, isRecycleBinFolder,
operationsFolders, operationsFolders,
setExpandedPanelKeys, setExpandedPanelKeys,
expandedPanelKeys, expandedPanelKeys,
commonFolder,
getCommonFolder,
} = treeFoldersStore; } = treeFoldersStore;
const { checkOperationConflict } = filesActionsStore; const { checkOperationConflict } = filesActionsStore;
//debugger;
console.log("commonFolder", commonFolder);
const { const {
moveToPanelVisible, moveToPanelVisible,
copyPanelVisible, copyPanelVisible,
@ -162,7 +150,7 @@ export default inject(
} = dialogsStore; } = dialogsStore;
const provider = selection.find((x) => x.providerKey); const provider = selection.find((x) => x.providerKey);
//debugger;
return { return {
expandedKeys: expandedPanelKeys expandedKeys: expandedPanelKeys
? expandedPanelKeys ? expandedPanelKeys
@ -174,8 +162,7 @@ export default inject(
visible: copyPanelVisible || moveToPanelVisible, visible: copyPanelVisible || moveToPanelVisible,
provider, provider,
selection, selection,
getCommonFolder,
commonTreeFolder,
setCopyPanelVisible, setCopyPanelVisible,
setMoveToPanelVisible, setMoveToPanelVisible,
setDestFolderId, setDestFolderId,

View File

@ -80,9 +80,7 @@ let defaultMonthly = false;
let defaultWeekly = false; let defaultWeekly = false;
let defaultDaily = false; let defaultDaily = false;
let moduleName = ""; class AutomaticBackup extends React.PureComponent {
let storageFiledValue = "";
class AutomaticBackup extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
const { t, language } = props; const { t, language } = props;
@ -91,8 +89,6 @@ class AutomaticBackup extends React.Component {
moment.locale(this.lng); moment.locale(this.lng);
this.state = { this.state = {
isShowedStorageType: false, //if current automatic storage not choose
isShowDocuments: false, isShowDocuments: false,
isShowThirdParty: false, isShowThirdParty: false,
isShowThirdPartyStorage: false, isShowThirdPartyStorage: false,
@ -186,11 +182,6 @@ class AutomaticBackup extends React.Component {
defaultMaxCopies = `${selectedSchedule.backupsStored}`; defaultMaxCopies = `${selectedSchedule.backupsStored}`;
if (defaultStorageType === "5") { if (defaultStorageType === "5") {
this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
});
this.onSetDefaultOptions(); this.onSetDefaultOptions();
} else { } else {
getFolderPath(folderId) getFolderPath(folderId)
@ -199,14 +190,7 @@ class AutomaticBackup extends React.Component {
? (folderDocumentsModulePath = folderPath) ? (folderDocumentsModulePath = folderPath)
: (folderThirdPartyModulePath = folderPath) : (folderThirdPartyModulePath = folderPath)
) )
.then(() => { .then(() => this.onSetDefaultOptions());
this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
});
this.onSetDefaultOptions();
});
} }
} }
}) })
@ -234,6 +218,9 @@ class AutomaticBackup extends React.Component {
if (defaultStorageType === "0") { if (defaultStorageType === "0") {
// Documents Module // Documents Module
this.setState({ this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
isShowDocuments: true, isShowDocuments: true,
isCheckedDocuments: true, isCheckedDocuments: true,
selectedTimeOption: defaultHour, selectedTimeOption: defaultHour,
@ -244,9 +231,11 @@ class AutomaticBackup extends React.Component {
if (defaultStorageType === "1") { if (defaultStorageType === "1") {
// ThirdPartyResource Module // ThirdPartyResource Module
this.setState({ this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
isShowThirdParty: true, isShowThirdParty: true,
isCheckedThirdParty: true, isCheckedThirdParty: true,
selectedTimeOption: defaultHour, selectedTimeOption: defaultHour,
selectedMaxCopies: defaultMaxCopies, selectedMaxCopies: defaultMaxCopies,
selectedNumberMaxCopies: defaultMaxCopies, selectedNumberMaxCopies: defaultMaxCopies,
@ -256,6 +245,9 @@ class AutomaticBackup extends React.Component {
if (defaultStorageType === "5") { if (defaultStorageType === "5") {
// ThirdPartyStorage Module // ThirdPartyStorage Module
this.setState({ this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
isShowThirdPartyStorage: true, isShowThirdPartyStorage: true,
isCheckedThirdPartyStorage: true, isCheckedThirdPartyStorage: true,
selectedTimeOption: defaultHour, selectedTimeOption: defaultHour,
@ -567,19 +559,9 @@ class AutomaticBackup extends React.Component {
} }
}) })
.then(() => { .then(() => {
this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
});
this.onSetDefaultOptions(); this.onSetDefaultOptions();
}); });
} else { } else {
this.setState({
selectedPermission: "enable",
isShowedStorageTypes: true,
});
this.onSetDefaultOptions(); this.onSetDefaultOptions();
} }
} }
@ -614,6 +596,7 @@ class AutomaticBackup extends React.Component {
}); });
if (isError) this.setState({ isError: false }); if (isError) this.setState({ isError: false });
if (defaultStorageType) { if (defaultStorageType) {
selectedPermission === "disable" && selectedPermission === "disable" &&
this.setState({ this.setState({
@ -751,6 +734,7 @@ class AutomaticBackup extends React.Component {
isCheckedDocuments, isCheckedDocuments,
isCheckedThirdParty, isCheckedThirdParty,
isCheckedThirdPartyStorage, isCheckedThirdPartyStorage,
isChanged,
} = this.state; } = this.state;
let changed; let changed;
//debugger; //debugger;
@ -759,14 +743,16 @@ class AutomaticBackup extends React.Component {
//debugger; //debugger;
if (+defaultStorageType === 0) { if (+defaultStorageType === 0) {
changed = this.checkOptions(); changed = this.checkOptions();
this.setState({ isChanged !== changed &&
isChanged: changed, this.setState({
}); isChanged: changed,
});
return; return;
} else { } else {
this.setState({ isChanged !== changed &&
isChanged: true, this.setState({
}); isChanged: true,
});
return; return;
} }
} }
@ -774,28 +760,32 @@ class AutomaticBackup extends React.Component {
if (isCheckedThirdParty) { if (isCheckedThirdParty) {
if (+defaultStorageType === 1) { if (+defaultStorageType === 1) {
changed = this.checkOptions(); changed = this.checkOptions();
this.setState({ isChanged !== changed &&
isChanged: changed, this.setState({
}); isChanged: changed,
});
return; return;
} else { } else {
this.setState({ isChanged !== changed &&
isChanged: true, this.setState({
}); isChanged: true,
});
return; return;
} }
} }
if (isCheckedThirdPartyStorage) { if (isCheckedThirdPartyStorage) {
if (+defaultStorageType === 5) { if (+defaultStorageType === 5) {
changed = this.checkOptions(); changed = this.checkOptions();
this.setState({ isChanged !== changed &&
isChanged: changed, this.setState({
}); isChanged: changed,
});
return; return;
} else { } else {
this.setState({ isChanged !== changed &&
isChanged: true, this.setState({
}); isChanged: true,
});
return; return;
} }
} }
@ -853,7 +843,6 @@ class AutomaticBackup extends React.Component {
if (name === "enable") { if (name === "enable") {
this.setState({ this.setState({
isShowedStorageTypes: true, isShowedStorageTypes: true,
selectedPermission: "enable", selectedPermission: "enable",
}); });
@ -885,10 +874,6 @@ class AutomaticBackup extends React.Component {
} else { } else {
this.setState({ this.setState({
isShowedStorageTypes: false, isShowedStorageTypes: false,
//isCheckedDocuments: false,
//isCheckedThirdParty: false,
//isCheckedThirdPartyStorage: false,
isShowDocuments: false, isShowDocuments: false,
isShowThirdParty: false, isShowThirdParty: false,
isShowThirdPartyStorage: false, isShowThirdPartyStorage: false,
@ -969,6 +954,7 @@ class AutomaticBackup extends React.Component {
console.log("this.state", this.state); console.log("this.state", this.state);
console.log("this.props", this.props); console.log("this.props", this.props);
console.log("__________________");
return isLoading ? ( return isLoading ? (
<Loader className="pageLoader" type="rombs" size="40px" /> <Loader className="pageLoader" type="rombs" size="40px" />