diff --git a/dashboard/src/views/backups.html b/dashboard/src/views/backups.html
index 1913ab2ba..8bec92b0e 100644
--- a/dashboard/src/views/backups.html
+++ b/dashboard/src/views/backups.html
@@ -101,7 +101,7 @@
{{ 'backups.cleanupBackups.description' | tr }}
@@ -508,7 +508,10 @@
@@ -532,13 +535,17 @@
+
@@ -594,23 +601,9 @@
-
-
-
-
-
diff --git a/dashboard/src/views/backups.js b/dashboard/src/views/backups.js
index 462932c62..46489364c 100644
--- a/dashboard/src/views/backups.js
+++ b/dashboard/src/views/backups.js
@@ -119,11 +119,9 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
message: '',
errorMessage: '',
taskId: '',
- taskType: TASK_TYPES.TASK_BACKUP,
- checkStatus: function () {
- // TODO support both task types TASK_BACKUP and TASK_CLEAN_BACKUPS
- Client.getLatestTaskByType($scope.createBackup.taskType, function (error, task) {
+ init: function () {
+ Client.getLatestTaskByType(TASK_TYPES.TASK_BACKUP, function (error, task) {
if (error) return console.error(error);
if (!task) return;
@@ -158,7 +156,6 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
$scope.createBackup.percent = 0;
$scope.createBackup.message = '';
$scope.createBackup.errorMessage = '';
- $scope.createBackup.taskType = TASK_TYPES.TASK_BACKUP;
Client.startBackup(function (error, taskId) {
if (error) {
@@ -182,26 +179,6 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
});
},
- cleanupBackups: function () {
- $('#cleanupBackupsModal').modal('show');
- },
-
- startCleanup: function () {
- $scope.createBackup.busy = true;
- $scope.createBackup.percent = 0;
- $scope.createBackup.message = '';
- $scope.createBackup.errorMessage = '';
- $scope.createBackup.taskType = TASK_TYPES.TASK_CLEAN_BACKUPS;
-
- $('#cleanupBackupsModal').modal('hide');
-
- 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) {
@@ -221,6 +198,54 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
}
};
+ $scope.cleanupBackups = {
+ busy: false,
+ taskId: 0,
+
+ init: function () {
+ Client.getLatestTaskByType(TASK_TYPES.TASK_CLEAN_BACKUPS, function (error, task) {
+ if (error) return console.error(error);
+
+ if (!task) return;
+
+ $scope.cleanupBackups.taskId = task.id;
+ $scope.cleanupBackups.updateStatus();
+ });
+ },
+
+ updateStatus: function () {
+ Client.getTask($scope.cleanupBackups.taskId, function (error, data) {
+ if (error) return window.setTimeout($scope.cleanupBackups.updateStatus, 5000);
+
+ if (!data.active) {
+ $scope.cleanupBackups.busy = false;
+ return fetchBackups();
+ }
+
+ $scope.cleanupBackups.busy = true;
+ $scope.cleanupBackups.message = data.message;
+ window.setTimeout($scope.cleanupBackups.updateStatus, 3000);
+ });
+ },
+
+ ask: function () {
+ $('#cleanupBackupsModal').modal('show');
+ },
+
+ start: function () {
+ $scope.cleanupBackups.busy = true;
+
+ $('#cleanupBackupsModal').modal('hide');
+
+ Client.cleanupBackups(function (error, taskId) {
+ if (error) console.error(error);
+
+ $scope.cleanupBackups.taskId = taskId;
+ $scope.cleanupBackups.updateStatus();
+ });
+ }
+ };
+
$scope.listBackups = {
};
@@ -748,7 +773,8 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat
$scope.manualBackupApps = Client.getInstalledApps().filter(function (app) { return app.type !== APP_TYPES.LINK && !app.enableBackup; });
// show backup status
- $scope.createBackup.checkStatus();
+ $scope.createBackup.init();
+ $scope.cleanupBackups.init();
});
});
diff --git a/dashboard/src/views/domains.html b/dashboard/src/views/domains.html
index 9bb302eb3..36cd695e8 100644
--- a/dashboard/src/views/domains.html
+++ b/dashboard/src/views/domains.html
@@ -353,7 +353,7 @@
@@ -386,7 +386,7 @@