Web: Settings: Auto Backup: Added selected options to the session storage for Documents and ThirdParty resources Module and Refactoring.

This commit is contained in:
Tatiana Lopaeva 2021-05-28 10:56:24 +03:00
parent 89965f0c54
commit eee7b67037
3 changed files with 144 additions and 137 deletions

View File

@ -74,10 +74,9 @@ class AutomaticBackup extends React.PureComponent {
isDisableOptions: false,
selectedFolder: "",
//isPanelVisible: false,
isChanged: false,
isSetDefaultFolderPath: false,
//isError: false,
downloadingProgress: 100,
};
@ -110,7 +109,6 @@ class AutomaticBackup extends React.PureComponent {
}
componentDidMount() {
//const { getCommonThirdPartyList } = this.props;
this._isMounted = true;
const { selectedFolder } = this.state;
this.getWeekdaysOptions();
@ -192,12 +190,9 @@ class AutomaticBackup extends React.PureComponent {
defaultPeriod,
defaultStorageType,
defaultDay,
defaultHour,
defaultMaxCopies,
} = this.state;
//debugger;
console.log("onSetDefaultOptions");
if (defaultStorageType === "0") {
// Documents Module
this._isMounted &&
@ -207,9 +202,6 @@ class AutomaticBackup extends React.PureComponent {
isShowDocuments: true,
isCheckedDocuments: true,
// selectedTimeOption: defaultHour,
// selectedMaxCopies: defaultMaxCopies,
// selectedNumberMaxCopies: defaultMaxCopies,
});
}
if (defaultStorageType === "1") {
@ -221,9 +213,6 @@ class AutomaticBackup extends React.PureComponent {
isShowThirdParty: true,
isCheckedThirdParty: true,
// selectedTimeOption: defaultHour,
// selectedMaxCopies: defaultMaxCopies,
// selectedNumberMaxCopies: defaultMaxCopies,
});
}
@ -236,15 +225,15 @@ class AutomaticBackup extends React.PureComponent {
isShowThirdPartyStorage: true,
isCheckedThirdPartyStorage: true,
// selectedTimeOption: defaultHour,
// selectedMaxCopies: defaultMaxCopies,
// selectedNumberMaxCopies: defaultMaxCopies,
});
}
if (+defaultPeriod === 1) {
//Every Week option
const arrayIndex = this.lng === "en" ? defaultDay - 1 : defaultDay - 2; //selected number of week
//debugger;
const arrayIndex = this.lng === "en" ? defaultDay : defaultDay - 1;
defaultWeekly = true;
this._isMounted &&
this.setState({
defaultSelectedOption: this.periodOptions[1].label,
@ -252,39 +241,21 @@ class AutomaticBackup extends React.PureComponent {
defaultSelectedWeekdayOption: defaultDay,
weeklySchedule: true,
});
defaultWeekly = true;
// this.setState({
// selectedOption: defaultSelectedOption,
// weeklySchedule: true,
// selectedWeekdayOption: this.weekdaysOptions[arrayIndex].label,
// selectedNumberWeekdayOption: defaultDay,
// });
} else {
if (+defaultPeriod === 2) {
//Every Month option
defaultMonthly = true;
this._isMounted &&
this.setState({
defaultSelectedOption: this.periodOptions[2].label,
monthlySchedule: true,
});
// defaultSelectedOption = this.periodOptions[2].label;
defaultMonthly = true;
// this.setState({
// selectedOption: defaultSelectedOption,
// monthlySchedule: true,
// selectedMonthOption: `${defaultDay}`, //selected day of month
// });
} else {
defaultDaily = true;
this._isMounted &&
this.setState({
defaultSelectedOption: this.periodOptions[0].label,
});
//defaultSelectedOption = this.periodOptions[0].label;
// this.setState({
// selectedOption: defaultSelectedOption,
// });
}
}
@ -382,16 +353,12 @@ class AutomaticBackup extends React.PureComponent {
}
const isEnglishLanguage = this.lng === "en";
if (!isEnglishLanguage) {
const startWeek = this.weekdaysOptions[0];
this.weekdaysOptions.shift();
this.weekdaysOptions.push(startWeek);
}
console.log("this.weekdaysOptions", this.weekdaysOptions);
this._isMounted &&
this.setState({
weekOptions: this.weekdaysOptions,
selectedWeekdayOption: this.weekdaysOptions[0].label,
selectedWeekdayOption: isEnglishLanguage
? this.weekdaysOptions[0].label
: this.weekdaysOptions[1].label,
});
};
@ -405,16 +372,13 @@ class AutomaticBackup extends React.PureComponent {
weeklySchedule,
defaultSelectedFolder,
defaultStorageType,
//isError,
} = this.state;
this.setState({
isChanged: false,
// isSetDefaultFolderPath: true,
selectedFolder: defaultSelectedFolder,
});
//if (isError) this.setState({ isError: false });
if (defaultStorageType) {
//debugger;
selectedPermission === "disable" &&
@ -679,7 +643,7 @@ class AutomaticBackup extends React.PureComponent {
//console.log("commonThirdPartyList auto", this.commonThirdPartyList);
//console.log("this.props", this.props);
//console.log("__________________");
console.log("selectedPermission", selectedPermission);
//console.log("selectedPermission", selectedPermission);
return isLoading ? (
<Loader className="pageLoader" type="rombs" size="40px" />
) : (
@ -876,7 +840,7 @@ class AutomaticBackup extends React.PureComponent {
</>
)}
</StyledModules>
{isChanged && !isShowThirdPartyStorage && !isShowThirdParty && (
{/* {isChanged && !isShowThirdPartyStorage && !isShowThirdParty && (
<SaveCancelButtons
className="team-template_buttons"
onSaveClick={this.onSaveModuleSettings}
@ -887,7 +851,7 @@ class AutomaticBackup extends React.PureComponent {
cancelButtonLabel={t("CancelButton")}
isDisabled={isCopyingToLocal || isLoadingData}
/>
)}
)} */}
</>
)}

View File

@ -1,34 +1,33 @@
import React from "react";
import { withTranslation } from "react-i18next";
import SelectedFolder from "files/SelectedFolder";
import { inject, observer } from "mobx-react";
import ScheduleComponent from "./scheduleComponent";
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
import {
createBackupSchedule,
getBackupSchedule,
} from "@appserver/common/api/portal";
import { getFolderPath } from "@appserver/common/api/files";
import toastr from "@appserver/components/toast/toastr";
import { saveToSessionStorage, getFromSessionStorage } from "../.././../utils";
import { StyledComponent } from "../styled-backup";
import TextInput from "@appserver/components/text-input";
// let defaultSelectedFolder = "";
// let defaultStorageType = "";
// let defaultHour = "";
// let defaultPeriod = "";
// let defaultDay = 1;
// let defaultMaxCopies = "10";
// let defaultSelectedOption = "";
// let defaultSelectedWeekdayOption = "";
let periodFromSessionStorage = "";
let numberPeriodFromSessionStorage = null;
let dayFromSessionStorage = "";
let timeFromSessionStorage = "";
let maxCopiesFromSessionStorage = "";
let weekdayNameFromSessionStorage = "";
const settingNames = ["period", "day", "time", "maxCopies", "weekdayName"];
const settingNames = [
"period",
"day",
"time",
"maxCopies",
"weekdayName",
"numberPeriod",
];
class DocumentsModule extends React.Component {
constructor(props) {
super(props);
@ -39,13 +38,9 @@ class DocumentsModule extends React.Component {
defaultDay,
defaultHour,
defaultMaxCopies,
weekdaysOptions,
lng,
monthlySchedule,
weeklySchedule,
defaultStorageType,
defaultPeriod,
defaultSelectedWeekdayOption,
} = this.props;
//debugger;
@ -54,13 +49,30 @@ class DocumentsModule extends React.Component {
timeFromSessionStorage = getFromSessionStorage("time");
maxCopiesFromSessionStorage = getFromSessionStorage("maxCopies");
weekdayNameFromSessionStorage = getFromSessionStorage("weekdayName");
numberPeriodFromSessionStorage = getFromSessionStorage("numberPeriod");
const numberMaxCopies = maxCopiesFromSessionStorage
? maxCopiesFromSessionStorage.substring(
0,
maxCopiesFromSessionStorage.indexOf(" ")
)
: "";
const monthNumber = monthlySchedule
? dayFromSessionStorage || `${defaultDay}`
: "1";
: dayFromSessionStorage || "1";
const weekdayNumber = weeklySchedule
? dayFromSessionStorage || defaultDay
: "2";
: dayFromSessionStorage || "2";
const weekdayOption = numberPeriodFromSessionStorage
? numberPeriodFromSessionStorage === 2
: weeklySchedule || false;
const monthOption = numberPeriodFromSessionStorage
? numberPeriodFromSessionStorage === 3
: monthlySchedule || false;
this.state = {
isPanelVisible: false,
isChanged: false,
@ -68,9 +80,9 @@ class DocumentsModule extends React.Component {
isError: false,
isLoading: false,
monthlySchedule: monthlySchedule || false,
monthlySchedule: monthOption,
dailySchedule: false,
weeklySchedule: weeklySchedule || false,
weeklySchedule: weekdayOption,
selectedOption:
periodFromSessionStorage ||
@ -79,12 +91,11 @@ class DocumentsModule extends React.Component {
selectedWeekdayOption:
weekdayNameFromSessionStorage || selectedWeekdayOption,
selectedNumberWeekdayOption: weekdayNumber,
selectedTimeOption: defaultHour || "12:00",
selectedTimeOption: timeFromSessionStorage || defaultHour || "12:00",
selectedMonthOption: monthNumber,
selectedMaxCopies:
maxCopiesFromSessionStorage || defaultMaxCopies || "10",
selectedNumberMaxCopies:
maxCopiesFromSessionStorage || defaultMaxCopies || "10",
selectedNumberMaxCopies: numberMaxCopies || defaultMaxCopies || "10",
isSetDefaultFolderPath: false,
};
@ -162,6 +173,9 @@ class DocumentsModule extends React.Component {
const key = options.key;
const label = options.label;
//debugger;
saveToSessionStorage("period", label);
saveToSessionStorage("numberPeriod", key);
this.setState({ selectedOption: label });
key === 1
? this.setState(
@ -203,6 +217,10 @@ class DocumentsModule extends React.Component {
const key = options.key;
const label = options.label;
//debugger;
saveToSessionStorage("weekdayName", label);
saveToSessionStorage("day", key);
this.setState(
{
selectedNumberWeekdayOption: key,
@ -218,10 +236,12 @@ class DocumentsModule extends React.Component {
const label = options.label;
if (key <= 24) {
saveToSessionStorage("time", label);
this.setState({ selectedTimeOption: label }, function () {
this.checkChanges();
});
} else {
saveToSessionStorage("day", label);
this.setState(
{
selectedMonthOption: label,
@ -237,6 +257,8 @@ class DocumentsModule extends React.Component {
const key = options.key;
const label = options.label;
saveToSessionStorage("maxCopies", label);
this.setState(
{
selectedNumberMaxCopies: key,
@ -349,12 +371,13 @@ class DocumentsModule extends React.Component {
let storageParams = [];
// if (!selectedFolder) {
// this.setState({
// isError: true,
// });
// return;
// }
if (!selectedFolder) {
this.setState({
isError: true,
});
return;
}
onSetLoadingData && onSetLoadingData(true);
this.setState({ isLoadingData: true }, function () {
let period = weeklySchedule ? "1" : monthlySchedule ? "2" : "0";
@ -369,9 +392,8 @@ class DocumentsModule extends React.Component {
0,
selectedTimeOption.indexOf(":")
);
let storageType = "0";
//console.log("storageFiledValue", this.storageFiledValue);
let storageType = "0";
storageParams = [
{
@ -460,6 +482,11 @@ class DocumentsModule extends React.Component {
} = this.state;
onSetLoadingData && onSetLoadingData(true);
settingNames.forEach((settingName) => {
saveToSessionStorage(settingName, "");
});
if (defaultStorageType) {
this.setState({
isSetDefaultFolderPath: true,
@ -491,7 +518,7 @@ class DocumentsModule extends React.Component {
if (+defaultPeriod === 1) {
//Every Week option
//debugger;
const arrayIndex = lng === "en" ? defaultDay - 1 : defaultDay - 2; //selected number of week
const arrayIndex = lng === "en" ? defaultDay : defaultDay - 1; //selected number of week
defaultSelectedOption = periodOptions[1].label;
defaultSelectedWeekdayOption = defaultDay;
// defaultWeekly = true;
@ -505,14 +532,12 @@ class DocumentsModule extends React.Component {
if (+defaultPeriod === 2) {
//Every Month option
defaultSelectedOption = periodOptions[2].label;
//defaultMonthly = true;
this.setState({
selectedOption: defaultSelectedOption,
monthlySchedule: true,
selectedMonthOption: `${defaultDay}`, //selected day of month
});
} else {
// defaultDaily = true;
defaultSelectedOption = periodOptions[0].label;
this.setState({
selectedOption: defaultSelectedOption,
@ -552,8 +577,6 @@ class DocumentsModule extends React.Component {
monthNumberOptionsArray,
timeOptionsArray,
maxNumberCopiesArray,
// weeklySchedule,
// monthlySchedule,
isCopyingToLocal,
t,
onSetLoadingData,
@ -566,14 +589,14 @@ class DocumentsModule extends React.Component {
<>
{!isLoading ? (
<SelectedFolder
onSelectFolder={this.onSelectFolder} //здесь
onSelectFolder={this.onSelectFolder}
name={"thirdParty"}
onClose={this.onClose} //здесь
onClickInput={this.onClickInput} //здесь
isPanelVisible={isPanelVisible} //здесь
onClose={this.onClose}
onClickInput={this.onClickInput}
isPanelVisible={isPanelVisible}
folderPath={this.folderDocumentsModulePath}
isSetDefaultFolderPath={isSetDefaultFolderPath} //здесь
isError={isError} //здесь
isSetDefaultFolderPath={isSetDefaultFolderPath}
isError={isError}
onSetLoadingData={onSetLoadingData}
isCommonFolders
isCommonWithoutProvider
@ -589,10 +612,10 @@ class DocumentsModule extends React.Component {
monthlySchedule={monthlySchedule}
weekOptions={weekOptions}
selectedOption={selectedOption}
selectedWeekdayOption={selectedWeekdayOption} //здесь ?
selectedTimeOption={selectedTimeOption} //здесь ?
selectedMonthOption={selectedMonthOption} //здесь ?
selectedMaxCopies={selectedMaxCopies} //здесь ?
selectedWeekdayOption={selectedWeekdayOption}
selectedTimeOption={selectedTimeOption}
selectedMonthOption={selectedMonthOption}
selectedMaxCopies={selectedMaxCopies}
isLoadingData={isLoadingData}
periodOptions={periodOptions}
monthNumberOptionsArray={monthNumberOptionsArray}
@ -623,4 +646,4 @@ class DocumentsModule extends React.Component {
);
}
}
export default withTranslation("Settings")(observer(DocumentsModule));
export default withTranslation("Settings")(DocumentsModule);

View File

@ -1,34 +1,33 @@
import React from "react";
import { withTranslation } from "react-i18next";
import SelectedFolder from "files/SelectedFolder";
import { inject, observer } from "mobx-react";
import ScheduleComponent from "./scheduleComponent";
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
import {
createBackupSchedule,
getBackupSchedule,
} from "@appserver/common/api/portal";
import { getFolderPath } from "@appserver/common/api/files";
import toastr from "@appserver/components/toast/toastr";
import TextInput from "@appserver/components/text-input";
import { saveToSessionStorage, getFromSessionStorage } from "../.././../utils";
import { StyledComponent } from "../styled-backup";
// let defaultSelectedFolder = "";
// let defaultStorageType = "";
// let defaultHour = "";
// let defaultPeriod = "";
// let defaultDay = 1;
// let defaultMaxCopies = "10";
// let defaultSelectedOption = "";
// let defaultSelectedWeekdayOption = "";
let periodFromSessionStorage = "";
let numberPeriodFromSessionStorage = null;
let dayFromSessionStorage = "";
let timeFromSessionStorage = "";
let maxCopiesFromSessionStorage = "";
let weekdayNameFromSessionStorage = "";
const settingNames = ["period", "day", "time", "maxCopies", "weekdayName"];
const settingNames = [
"period",
"day",
"time",
"maxCopies",
"weekdayName",
"numberPeriod",
];
class ThirdPartyModule extends React.Component {
constructor(props) {
super(props);
@ -39,27 +38,39 @@ class ThirdPartyModule extends React.Component {
defaultDay,
defaultHour,
defaultMaxCopies,
weekdaysOptions,
lng,
monthlySchedule,
weeklySchedule,
defaultStorageType,
defaultPeriod,
defaultSelectedWeekdayOption,
} = this.props;
//debugger;
periodFromSessionStorage = getFromSessionStorage("period");
dayFromSessionStorage = getFromSessionStorage("day");
timeFromSessionStorage = getFromSessionStorage("time");
maxCopiesFromSessionStorage = getFromSessionStorage("maxCopies");
weekdayNameFromSessionStorage = getFromSessionStorage("weekdayName");
numberPeriodFromSessionStorage = getFromSessionStorage("numberPeriod");
const numberMaxCopies = maxCopiesFromSessionStorage
? maxCopiesFromSessionStorage.substring(
0,
maxCopiesFromSessionStorage.indexOf(" ")
)
: "";
const monthNumber = monthlySchedule
? dayFromSessionStorage || `${defaultDay}`
: "1";
: dayFromSessionStorage || "1";
const weekdayNumber = weeklySchedule
? dayFromSessionStorage || defaultDay
: "2";
: dayFromSessionStorage || "2";
const weekdayOption = numberPeriodFromSessionStorage
? numberPeriodFromSessionStorage === 2
: weeklySchedule || false;
const monthOption = numberPeriodFromSessionStorage
? numberPeriodFromSessionStorage === 3
: monthlySchedule || false;
this.state = {
isPanelVisible: false,
isChanged: false,
@ -67,9 +78,9 @@ class ThirdPartyModule extends React.Component {
isError: false,
isLoading: false,
monthlySchedule: monthlySchedule || false,
monthlySchedule: monthOption,
dailySchedule: false,
weeklySchedule: weeklySchedule || false,
weeklySchedule: weekdayOption,
selectedOption:
periodFromSessionStorage ||
@ -78,12 +89,11 @@ class ThirdPartyModule extends React.Component {
selectedWeekdayOption:
weekdayNameFromSessionStorage || selectedWeekdayOption,
selectedNumberWeekdayOption: weekdayNumber,
selectedTimeOption: defaultHour || "12:00",
selectedTimeOption: timeFromSessionStorage || defaultHour || "12:00",
selectedMonthOption: monthNumber,
selectedMaxCopies:
maxCopiesFromSessionStorage || defaultMaxCopies || "10",
selectedNumberMaxCopies:
maxCopiesFromSessionStorage || defaultMaxCopies || "10",
selectedNumberMaxCopies: numberMaxCopies || defaultMaxCopies || "10",
isSetDefaultFolderPath: false,
};
@ -159,6 +169,9 @@ class ThirdPartyModule extends React.Component {
const key = options.key;
const label = options.label;
//debugger;
saveToSessionStorage("period", label);
saveToSessionStorage("numberPeriod", key);
this.setState({ selectedOption: label });
key === 1
? this.setState(
@ -200,6 +213,10 @@ class ThirdPartyModule extends React.Component {
const key = options.key;
const label = options.label;
//debugger;
saveToSessionStorage("weekdayName", label);
saveToSessionStorage("day", key);
this.setState(
{
selectedNumberWeekdayOption: key,
@ -215,10 +232,12 @@ class ThirdPartyModule extends React.Component {
const label = options.label;
if (key <= 24) {
saveToSessionStorage("time", label);
this.setState({ selectedTimeOption: label }, function () {
this.checkChanges();
});
} else {
saveToSessionStorage("day", label);
this.setState(
{
selectedMonthOption: label,
@ -234,6 +253,8 @@ class ThirdPartyModule extends React.Component {
const key = options.key;
const label = options.label;
saveToSessionStorage("maxCopies", label);
this.setState(
{
selectedNumberMaxCopies: key,
@ -367,8 +388,6 @@ class ThirdPartyModule extends React.Component {
);
let storageType = "1";
//console.log("storageFiledValue", this.storageFiledValue);
storageParams = [
{
key: "folderId",
@ -455,6 +474,11 @@ class ThirdPartyModule extends React.Component {
} = this.state;
onSetLoadingData && onSetLoadingData(true);
settingNames.forEach((settingName) => {
saveToSessionStorage(settingName, "");
});
if (defaultStorageType) {
this.setState({
isSetDefaultFolderPath: true,
@ -486,7 +510,7 @@ class ThirdPartyModule extends React.Component {
if (+defaultPeriod === 1) {
//Every Week option
//debugger;
const arrayIndex = lng === "en" ? defaultDay - 1 : defaultDay - 2; //selected number of week
const arrayIndex = lng === "en" ? defaultDay : defaultDay - 1; //selected number of week
defaultSelectedOption = periodOptions[1].label;
defaultSelectedWeekdayOption = defaultDay;
// defaultWeekly = true;
@ -500,14 +524,12 @@ class ThirdPartyModule extends React.Component {
if (+defaultPeriod === 2) {
//Every Month option
defaultSelectedOption = periodOptions[2].label;
//defaultMonthly = true;
this.setState({
selectedOption: defaultSelectedOption,
monthlySchedule: true,
selectedMonthOption: `${defaultDay}`, //selected day of month
});
} else {
// defaultDaily = true;
defaultSelectedOption = periodOptions[0].label;
this.setState({
selectedOption: defaultSelectedOption,
@ -547,8 +569,6 @@ class ThirdPartyModule extends React.Component {
monthNumberOptionsArray,
timeOptionsArray,
maxNumberCopiesArray,
// weeklySchedule,
// monthlySchedule,
isCopyingToLocal,
t,
onSetLoadingData,
@ -561,14 +581,14 @@ class ThirdPartyModule extends React.Component {
<>
{!isLoading ? (
<SelectedFolder
onSelectFolder={this.onSelectFolder} //здесь
onSelectFolder={this.onSelectFolder}
name={"thirdParty"}
onClose={this.onClose} //здесь
onClickInput={this.onClickInput} //здесь
isPanelVisible={isPanelVisible} //здесь
onClose={this.onClose}
onClickInput={this.onClickInput}
isPanelVisible={isPanelVisible}
folderPath={this.folderThirdPartyModulePath}
isSetDefaultFolderPath={isSetDefaultFolderPath} //здесь
isError={isError} //здесь
isSetDefaultFolderPath={isSetDefaultFolderPath}
isError={isError}
onSetLoadingData={onSetLoadingData}
isThirdPartyFolders
withoutTopLevelFolder
@ -584,10 +604,10 @@ class ThirdPartyModule extends React.Component {
monthlySchedule={monthlySchedule}
weekOptions={weekOptions}
selectedOption={selectedOption}
selectedWeekdayOption={selectedWeekdayOption} //здесь ?
selectedTimeOption={selectedTimeOption} //здесь ?
selectedMonthOption={selectedMonthOption} //здесь ?
selectedMaxCopies={selectedMaxCopies} //здесь ?
selectedWeekdayOption={selectedWeekdayOption}
selectedTimeOption={selectedTimeOption}
selectedMonthOption={selectedMonthOption}
selectedMaxCopies={selectedMaxCopies}
isLoadingData={isLoadingData}
periodOptions={periodOptions}
monthNumberOptionsArray={monthNumberOptionsArray}
@ -618,4 +638,4 @@ class ThirdPartyModule extends React.Component {
);
}
}
export default withTranslation("Settings")(observer(ThirdPartyModule));
export default withTranslation("Settings")(ThirdPartyModule);