Add backup listing UI

This commit is contained in:
Girish Ramakrishnan
2020-05-14 22:42:41 -07:00
parent a8f5b5d4e4
commit 6528461873
2 changed files with 79 additions and 23 deletions
+37 -3
View File
@@ -129,9 +129,10 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
message: '',
errorMessage: '',
taskId: '',
taskType: '',
checkStatus: function () {
Client.getLatestTaskByType('backup', function (error, task) {
Client.getLatestTaskByType($scope.createBackup.taskType, function (error, task) {
if (error) return console.error(error);
if (!task) return;
@@ -166,6 +167,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
$scope.createBackup.percent = 0;
$scope.createBackup.message = '';
$scope.createBackup.errorMessage = '';
$scope.createBackup.taskType = 'backup';
Client.startBackup(function (error, taskId) {
if (error) {
@@ -189,7 +191,22 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
});
},
stopBackup: function () {
startCleanup: function () {
$scope.createBackup.busy = true;
$scope.createBackup.percent = 0;
$scope.createBackup.message = '';
$scope.createBackup.errorMessage = '';
$scope.createBackup.taskType = 'cleanBackups';
Client.cleanupBackups(function (error, taskId) {
if (error) console.error(error);
$scope.createBackup.taskId = taskId;
$scope.createBackup.updateStatus();
});
},
stopTask: function () {
Client.stopTask($scope.createBackup.taskId, function (error) {
if (error) {
if (error.statusCode === 409) {
@@ -207,6 +224,22 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
}
};
$scope.listBackups = {
copyBackupIdDone: false,
copyBackupId: function (backup) {
var copyText = document.getElementById('backupIdHelper');
copyText.value = backup.id;
copyText.select();
document.execCommand('copy');
$scope.listBackups.copyBackupIdDone = true;
// reset after 2.5sec
$timeout(function () { $scope.listBackups.copyBackupIdDone = false; }, 2500);
},
};
$scope.s3like = function (provider) {
return provider === 's3' || provider === 'minio' || provider === 's3-v4-compat'
|| provider === 'exoscale-sos' || provider === 'digitalocean-spaces'
@@ -228,9 +261,10 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
document.body.removeChild(element);
}
$scope.downloadConfig = function () {
$scope.downloadConfig = function (backup) {
// secrets and tokens already come with placeholder characters we remove them
var tmp = {
backupId: backup.id,
encrypted: !!$scope.backupConfig.password // we add this just to help the import UI
};