Web: Settings: Added backup store.
This commit is contained in:
parent
c2518d3b1e
commit
e4deaa19b0
@ -41,7 +41,6 @@ class BackupDesktopView extends React.Component {
|
|||||||
enableRestore: false,
|
enableRestore: false,
|
||||||
enableAutoBackup: false,
|
enableAutoBackup: false,
|
||||||
backupSchedule: {},
|
backupSchedule: {},
|
||||||
backupStorage: {},
|
|
||||||
commonThirdPartyList: {},
|
commonThirdPartyList: {},
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
};
|
};
|
||||||
@ -60,6 +59,8 @@ class BackupDesktopView extends React.Component {
|
|||||||
clearInterval(this.timerId);
|
clearInterval(this.timerId);
|
||||||
}
|
}
|
||||||
setBasicSettings = async () => {
|
setBasicSettings = async () => {
|
||||||
|
const { setThirdPartyStorage } = this.props;
|
||||||
|
|
||||||
const requests = [
|
const requests = [
|
||||||
enableRestore(),
|
enableRestore(),
|
||||||
enableAutoBackup(),
|
enableAutoBackup(),
|
||||||
@ -89,12 +90,13 @@ class BackupDesktopView extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setThirdPartyStorage(backupStorage);
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
enableRestore: canRestore,
|
enableRestore: canRestore,
|
||||||
enableAutoBackup: canAutoBackup,
|
enableAutoBackup: canAutoBackup,
|
||||||
backupSchedule,
|
backupSchedule,
|
||||||
backupStorage,
|
|
||||||
commonThirdPartyList,
|
commonThirdPartyList,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -179,7 +181,6 @@ class BackupDesktopView extends React.Component {
|
|||||||
enableRestore,
|
enableRestore,
|
||||||
enableAutoBackup,
|
enableAutoBackup,
|
||||||
backupSchedule,
|
backupSchedule,
|
||||||
backupStorage,
|
|
||||||
commonThirdPartyList,
|
commonThirdPartyList,
|
||||||
link,
|
link,
|
||||||
} = this.state;
|
} = this.state;
|
||||||
@ -255,7 +256,6 @@ class BackupDesktopView extends React.Component {
|
|||||||
<AutoBackup
|
<AutoBackup
|
||||||
isDesktop
|
isDesktop
|
||||||
backupSchedule={backupSchedule}
|
backupSchedule={backupSchedule}
|
||||||
thirdPartyStorageInfo={backupStorage}
|
|
||||||
commonThirdPartyList={commonThirdPartyList}
|
commonThirdPartyList={commonThirdPartyList}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -290,11 +290,14 @@ class BackupDesktopView extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default inject(({ auth }) => {
|
export default inject(({ auth, backup }) => {
|
||||||
const { language } = auth;
|
const { language } = auth;
|
||||||
const { helpUrlCreatingBackup } = auth.settingsStore;
|
const { helpUrlCreatingBackup } = auth.settingsStore;
|
||||||
|
const { setThirdPartyStorage } = backup;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
helpUrlCreatingBackup,
|
helpUrlCreatingBackup,
|
||||||
language,
|
language,
|
||||||
|
setThirdPartyStorage,
|
||||||
};
|
};
|
||||||
})(observer(withTranslation(["Settings", "Common"])(BackupDesktopView)));
|
})(observer(withTranslation(["Settings", "Common"])(BackupDesktopView)));
|
||||||
|
@ -938,7 +938,7 @@ class AutomaticBackup extends React.PureComponent {
|
|||||||
time,
|
time,
|
||||||
day
|
day
|
||||||
) => {
|
) => {
|
||||||
const { t } = this.props;
|
const { t, setThirdPartyStorage } = this.props;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await createBackupSchedule(
|
await createBackupSchedule(
|
||||||
@ -954,7 +954,7 @@ class AutomaticBackup extends React.PureComponent {
|
|||||||
getBackupSchedule(),
|
getBackupSchedule(),
|
||||||
getBackupStorage(),
|
getBackupStorage(),
|
||||||
]);
|
]);
|
||||||
this.storageInfo = storageInfo;
|
setThirdPartyStorage(storageInfo);
|
||||||
this.selectedSchedule = true;
|
this.selectedSchedule = true;
|
||||||
|
|
||||||
this.onSetDefaultOptions(selectedSchedule, true);
|
this.onSetDefaultOptions(selectedSchedule, true);
|
||||||
@ -1227,10 +1227,12 @@ class AutomaticBackup extends React.PureComponent {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
export default inject(({ auth }) => {
|
export default inject(({ auth, backup }) => {
|
||||||
const { language } = auth;
|
const { language } = auth;
|
||||||
|
const { setThirdPartyStorage } = backup;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
language,
|
language,
|
||||||
|
setThirdPartyStorage,
|
||||||
};
|
};
|
||||||
})(withTranslation(["Settings", "Common"])(observer(AutomaticBackup)));
|
})(withTranslation(["Settings", "Common"])(observer(AutomaticBackup)));
|
||||||
|
@ -8,13 +8,14 @@ import SelectelStorage from "./storages/SelectelStorage";
|
|||||||
import AmazonStorage from "./storages/AmazonStorage";
|
import AmazonStorage from "./storages/AmazonStorage";
|
||||||
import { ThirdPartyStorages } from "@appserver/common/constants";
|
import { ThirdPartyStorages } from "@appserver/common/constants";
|
||||||
import { StyledAutoBackup } from "../../StyledBackup";
|
import { StyledAutoBackup } from "../../StyledBackup";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
|
|
||||||
let googleStorageId = ThirdPartyStorages.GoogleId;
|
let googleStorageId = ThirdPartyStorages.GoogleId;
|
||||||
|
|
||||||
class ThirdPartyStorageModule extends React.PureComponent {
|
class ThirdPartyStorageModule extends React.PureComponent {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
const { storageInfo } = this.props;
|
const { thirdPartyStorage } = this.props;
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
availableOptions: [],
|
availableOptions: [],
|
||||||
@ -24,7 +25,7 @@ class ThirdPartyStorageModule extends React.PureComponent {
|
|||||||
selectedId: "",
|
selectedId: "",
|
||||||
};
|
};
|
||||||
|
|
||||||
storageInfo && this.getOptions(storageInfo);
|
thirdPartyStorage && this.getOptions(thirdPartyStorage);
|
||||||
this._isMount = false;
|
this._isMount = false;
|
||||||
}
|
}
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
@ -35,7 +36,7 @@ class ThirdPartyStorageModule extends React.PureComponent {
|
|||||||
this._isMount = false;
|
this._isMount = false;
|
||||||
}
|
}
|
||||||
componentDidUpdate(prevProps) {
|
componentDidUpdate(prevProps) {
|
||||||
const { isSuccessSave, isReset, storageInfo } = this.props;
|
const { isSuccessSave, isReset, thirdPartyStorage } = this.props;
|
||||||
const {
|
const {
|
||||||
defaultSelectedStorage,
|
defaultSelectedStorage,
|
||||||
selectedStorage,
|
selectedStorage,
|
||||||
@ -43,7 +44,7 @@ class ThirdPartyStorageModule extends React.PureComponent {
|
|||||||
} = this.state;
|
} = this.state;
|
||||||
|
|
||||||
if (isSuccessSave && isSuccessSave !== prevProps.isSuccessSave) {
|
if (isSuccessSave && isSuccessSave !== prevProps.isSuccessSave) {
|
||||||
storageInfo && this.getOptions(storageInfo);
|
thirdPartyStorage && this.getOptions(thirdPartyStorage);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isReset && isReset !== prevProps.isReset) {
|
if (isReset && isReset !== prevProps.isReset) {
|
||||||
@ -231,4 +232,9 @@ class ThirdPartyStorageModule extends React.PureComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default withTranslation("Settings")(ThirdPartyStorageModule);
|
export default inject(({ backup }) => {
|
||||||
|
const { thirdPartyStorage } = backup;
|
||||||
|
return {
|
||||||
|
thirdPartyStorage,
|
||||||
|
};
|
||||||
|
})(withTranslation("Settings")(observer(ThirdPartyStorageModule)));
|
||||||
|
117
web/ASC.Web.Client/src/store/BackupStore.js
Normal file
117
web/ASC.Web.Client/src/store/BackupStore.js
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
import api from "@appserver/common/api";
|
||||||
|
import { makeAutoObservable } from "mobx";
|
||||||
|
|
||||||
|
const DOCUMENT_MODULE_TYPE = 0;
|
||||||
|
const RESOURCES_MODULE_TYPE = 1;
|
||||||
|
const STORAGES_MODULE_TYPE = 5;
|
||||||
|
|
||||||
|
const EVERY_DAY_TYPE = "0";
|
||||||
|
const EVERY_WEEK_TYPE = "1";
|
||||||
|
const EVERY_MONTH_TYPE = "2";
|
||||||
|
|
||||||
|
class BackupStore {
|
||||||
|
isMobileOnly = false;
|
||||||
|
backupSchedule = {};
|
||||||
|
backupStorage = {};
|
||||||
|
commonThirdPartyList = {};
|
||||||
|
|
||||||
|
defaultDay = "0";
|
||||||
|
defaultHour = "12:00";
|
||||||
|
defaultPeriodNumber = "0";
|
||||||
|
defaultPeriodLabel = "Every day";
|
||||||
|
defaultMaxCopiesNumber = "10";
|
||||||
|
|
||||||
|
defaultWeekday = null;
|
||||||
|
defaultWeekdayLabel = "";
|
||||||
|
defaultStorageType = null;
|
||||||
|
defaultFolderId = null;
|
||||||
|
|
||||||
|
selectedDay = "0";
|
||||||
|
selectedHour = "12:00";
|
||||||
|
selectedPeriodNumber = "0";
|
||||||
|
selectedPeriodLabel = "Every day";
|
||||||
|
selectedMaxCopiesNumber = "10";
|
||||||
|
|
||||||
|
selectedWeekday = null;
|
||||||
|
selectedWeekdayLabel = "";
|
||||||
|
selectedStorageType = null;
|
||||||
|
selectedFolderId = null;
|
||||||
|
|
||||||
|
thirdPartyStorage = [];
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
makeAutoObservable(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
setIsMobileOnly = (isMobile) => {
|
||||||
|
this.isMobileOnly = isMobile;
|
||||||
|
};
|
||||||
|
|
||||||
|
setDefaultOptions = (t, periodObj, weekdayArr) => {
|
||||||
|
if (this.backupSchedule) {
|
||||||
|
const {
|
||||||
|
storageType,
|
||||||
|
cronParams,
|
||||||
|
backupsStored,
|
||||||
|
storageParams,
|
||||||
|
} = this.backupSchedule;
|
||||||
|
|
||||||
|
const { folderId } = storageParams;
|
||||||
|
const { period, day, hour } = cronParams;
|
||||||
|
|
||||||
|
this.defaultDay = `${day}`;
|
||||||
|
this.defaultHour = `${hour}:00`;
|
||||||
|
this.defaultPeriodNumber = `${period}`;
|
||||||
|
this.defaultMaxCopiesNumber = `${backupsStored}`;
|
||||||
|
this.defaultStorageType = `${storageType}`;
|
||||||
|
this.defaultFolderId = `${folderId}`;
|
||||||
|
|
||||||
|
this.selectedDay = this.defaultDay;
|
||||||
|
this.selectedHour = this.defaultHour;
|
||||||
|
this.selectedPeriodNumber = this.defaultPeriodNumber;
|
||||||
|
this.selectedMaxCopiesNumber = this.defaultMaxCopiesNumber;
|
||||||
|
this.selectedStorageType = this.defaultStorageType;
|
||||||
|
this.selectedFolderId = this.defaultFolderId;
|
||||||
|
|
||||||
|
this.defaultPeriodLabel = periodObj[+this.defaultPeriodNumber].label;
|
||||||
|
this.selectedPeriodLabel = this.defaultPeriodLabel;
|
||||||
|
|
||||||
|
this.defaultMonthDay =
|
||||||
|
this.defaultPeriodNumber === EVERY_WEEK_TYPE ||
|
||||||
|
this.defaultPeriodNumber === EVERY_DAY_TYPE
|
||||||
|
? "1"
|
||||||
|
: this.defaultDay;
|
||||||
|
|
||||||
|
this.selectedMonthDay = this.defaultMonthDay;
|
||||||
|
|
||||||
|
if (this.defaultPeriodNumber === EVERY_WEEK_TYPE) {
|
||||||
|
//Every Week option
|
||||||
|
let weekDay;
|
||||||
|
|
||||||
|
for (let i = 0; i < weekdayArr.length; i++) {
|
||||||
|
if (+weekdayArr[i].key === +this.defaultDay) {
|
||||||
|
weekDay = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.defaultWeekdayLabel = weekdayArr[defaultDay ? weekDay : 0].label;
|
||||||
|
this.selectedWeekdayLabel = this.defaultWeekdayLabel;
|
||||||
|
|
||||||
|
this.defaultWeekday = this.defaultDay;
|
||||||
|
this.selectedWeekday = this.defaultWeekday;
|
||||||
|
} else {
|
||||||
|
this.defaultWeekday = weekdayArr[0].key;
|
||||||
|
this.defaultWeekdayLabel = weekdayArr[0].label;
|
||||||
|
|
||||||
|
this.selectedWeekdayLabel = this.defaultWeekdayLabel;
|
||||||
|
this.selectedWeekday = this.defaultWeekday;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
setThirdPartyStorage = (list) => {
|
||||||
|
this.thirdPartyStorage = list;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BackupStore;
|
@ -3,11 +3,13 @@ import PaymentStore from "./PaymentStore";
|
|||||||
import WizardStore from "./WizardStore";
|
import WizardStore from "./WizardStore";
|
||||||
import SettingsSetupStore from "./SettingsSetupStore";
|
import SettingsSetupStore from "./SettingsSetupStore";
|
||||||
import ConfirmStore from "./ConfirmStore";
|
import ConfirmStore from "./ConfirmStore";
|
||||||
|
import BackupStore from "./BackupStore";
|
||||||
|
|
||||||
const paymentStore = new PaymentStore();
|
const paymentStore = new PaymentStore();
|
||||||
const wizardStore = new WizardStore();
|
const wizardStore = new WizardStore();
|
||||||
const setupStore = new SettingsSetupStore();
|
const setupStore = new SettingsSetupStore();
|
||||||
const confirmStore = new ConfirmStore();
|
const confirmStore = new ConfirmStore();
|
||||||
|
const backupStore = new BackupStore();
|
||||||
|
|
||||||
const store = {
|
const store = {
|
||||||
auth: authStore,
|
auth: authStore,
|
||||||
@ -15,6 +17,7 @@ const store = {
|
|||||||
wizard: wizardStore,
|
wizard: wizardStore,
|
||||||
setup: setupStore,
|
setup: setupStore,
|
||||||
confirm: confirmStore,
|
confirm: confirmStore,
|
||||||
|
backup: backupStore,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default store;
|
export default store;
|
||||||
|
Loading…
Reference in New Issue
Block a user