Move retention and backup schedule interval into a separate settings dialog
This commit is contained in:
+61
-7
@@ -123,6 +123,16 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
|
||||
}
|
||||
};
|
||||
|
||||
$scope.prettyBackupInterval = function (interval) {
|
||||
var tmp = $scope.intervalTimes.find(function (i) { return i.value === interval; });
|
||||
return tmp ? tmp.name : '';
|
||||
};
|
||||
|
||||
$scope.prettyBackupRetentionPolicy = function (retentionPolicy) {
|
||||
var tmp = $scope.retentionPolicies.find(function (p) { return angular.equals(p.value, retentionPolicy); });
|
||||
return tmp ? tmp.name : '';
|
||||
};
|
||||
|
||||
$scope.createBackup = {
|
||||
busy: false,
|
||||
percent: 0,
|
||||
@@ -262,6 +272,53 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
|
||||
download('cloudron_backup.json', JSON.stringify(tmp));
|
||||
};
|
||||
|
||||
$scope.configureScheduleAndRetention = {
|
||||
busy: false,
|
||||
error: {},
|
||||
|
||||
retentionPolicy: $scope.retentionPolicies[0],
|
||||
intervalSecs: 24 * 60 * 60,
|
||||
|
||||
show: function () {
|
||||
$scope.configureScheduleAndRetention.error = {};
|
||||
$scope.configureScheduleAndRetention.busy = false;
|
||||
$scope.configureScheduleAndRetention.retentionPolicy = $scope.retentionPolicies.find(function (x) { return angular.equals(x.value, $scope.backupConfig.retentionPolicy); }).value;
|
||||
$scope.configureScheduleAndRetention.intervalSecs = $scope.backupConfig.intervalSecs;
|
||||
|
||||
$('#configureScheduleAndRetentionModal').modal('show');
|
||||
},
|
||||
|
||||
submit: function () {
|
||||
$scope.configureScheduleAndRetention.error = {};
|
||||
$scope.configureScheduleAndRetention.busy = true;
|
||||
|
||||
// start with the full backupConfig since the api requires all fields
|
||||
var backupConfig = $scope.backupConfig;
|
||||
backupConfig.retentionPolicy = $scope.configureScheduleAndRetention.retentionPolicy;
|
||||
backupConfig.intervalSecs = $scope.configureScheduleAndRetention.intervalSecs;
|
||||
|
||||
Client.setBackupConfig(backupConfig, function (error) {
|
||||
$scope.configureScheduleAndRetention.busy = false;
|
||||
|
||||
if (error) {
|
||||
if (error.statusCode === 424) {
|
||||
$scope.configureScheduleAndRetention.error.generic = error.message;
|
||||
} else if (error.statusCode === 400) {
|
||||
$scope.configureScheduleAndRetention.error.generic = error.message;
|
||||
} else {
|
||||
console.error('Unable to change schedule or retention.', error);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$('#configureScheduleAndRetentionModal').modal('hide');
|
||||
|
||||
getBackupConfig();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.configureBackup = {
|
||||
busy: false,
|
||||
error: {},
|
||||
@@ -275,8 +332,6 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
|
||||
region: '',
|
||||
endpoint: '',
|
||||
backupFolder: '',
|
||||
retentionPolicy: $scope.retentionPolicies[0],
|
||||
intervalSecs: 24 * 60 * 60,
|
||||
acceptSelfSignedCerts: false,
|
||||
useHardlinks: true,
|
||||
externalDisk: false,
|
||||
@@ -319,8 +374,6 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
|
||||
$scope.configureBackup.endpoint = $scope.backupConfig.endpoint;
|
||||
$scope.configureBackup.password = $scope.backupConfig.password;
|
||||
$scope.configureBackup.backupFolder = $scope.backupConfig.backupFolder;
|
||||
$scope.configureBackup.retentionPolicy = $scope.retentionPolicies.find(function (x) { return angular.equals(x.value, $scope.backupConfig.retentionPolicy); }).value;
|
||||
$scope.configureBackup.intervalSecs = $scope.backupConfig.intervalSecs;
|
||||
$scope.configureBackup.format = $scope.backupConfig.format;
|
||||
$scope.configureBackup.acceptSelfSignedCerts = !!$scope.backupConfig.acceptSelfSignedCerts;
|
||||
$scope.configureBackup.useHardlinks = !$scope.backupConfig.noHardlinks;
|
||||
@@ -335,9 +388,10 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
|
||||
|
||||
var backupConfig = {
|
||||
provider: $scope.configureBackup.provider,
|
||||
retentionPolicy: $scope.configureBackup.retentionPolicy,
|
||||
intervalSecs: $scope.configureBackup.intervalSecs,
|
||||
format: $scope.configureBackup.format
|
||||
format: $scope.configureBackup.format,
|
||||
// required for api call to provide all fields
|
||||
intervalSecs: $scope.backupConfig.intervalSecs,
|
||||
retentionPolicy: $scope.backupConfig.retentionPolicy
|
||||
};
|
||||
if ($scope.configureBackup.password) backupConfig.password = $scope.configureBackup.password;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user