diff --git a/dashboard/src/views/backups.html b/dashboard/src/views/backups.html index 8bec92b0e..baef32064 100644 --- a/dashboard/src/views/backups.html +++ b/dashboard/src/views/backups.html @@ -510,7 +510,19 @@

{{ 'backups.schedule.title' | tr }} - + +

@@ -544,7 +556,18 @@

{{ 'backups.listing.title' | tr }} - +

diff --git a/dashboard/src/views/backups.js b/dashboard/src/views/backups.js index 46489364c..c7096e67c 100644 --- a/dashboard/src/views/backups.js +++ b/dashboard/src/views/backups.js @@ -17,6 +17,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat $scope.backupConfig = {}; $scope.backups = []; + $scope.backupTasks = []; + $scope.cleanupTasks = []; $scope.s3Regions = REGIONS_S3; $scope.wasabiRegions = REGIONS_WASABI; @@ -141,6 +143,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat $scope.createBackup.percent = 100; // indicates that 'result' is valid $scope.createBackup.errorMessage = data.success ? '' : data.error.message; + getBackupTasks(); + return fetchBackups(); } @@ -174,6 +178,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat return; } + getBackupTasks(); + $scope.createBackup.taskId = taskId; $scope.createBackup.updateStatus(); }); @@ -191,6 +197,7 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat } $scope.createBackup.busy = false; + getBackupTasks(); return; } @@ -210,6 +217,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat $scope.cleanupBackups.taskId = task.id; $scope.cleanupBackups.updateStatus(); + + getCleanupTasks(); }); }, @@ -219,7 +228,11 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat if (!data.active) { $scope.cleanupBackups.busy = false; - return fetchBackups(); + + getCleanupTasks(); + fetchBackups(); + + return; } $scope.cleanupBackups.busy = true; @@ -242,6 +255,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat $scope.cleanupBackups.taskId = taskId; $scope.cleanupBackups.updateStatus(); + + getCleanupTasks(); }); } }; @@ -761,6 +776,26 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat }); } + function getBackupTasks() { + Client.getTasksByType(TASK_TYPES.TASK_BACKUP, function (error, tasks) { + if (error) return console.error(error); + + if (!tasks.length) return; + + $scope.backupTasks = tasks.slice(0, 10); + }); + } + + function getCleanupTasks() { + Client.getTasksByType(TASK_TYPES.TASK_CLEAN_BACKUPS, function (error, tasks) { + if (error) return console.error(error); + + if (!tasks.length) return; + + $scope.cleanupTasks = tasks.slice(0, 10); + }); + } + Client.onReady(function () { Client.memory(function (error, memory) { if (error) console.error(error); @@ -775,6 +810,9 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat // show backup status $scope.createBackup.init(); $scope.cleanupBackups.init(); + + getBackupTasks(); + getCleanupTasks(); }); });