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 @@ @@ -508,7 +508,10 @@
-

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

+

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

@@ -532,13 +535,17 @@
+
-

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

+

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

@@ -594,23 +601,9 @@
-
- -
-

{{ 'backups.logs.title' | tr }}

-
- -
-
-
-

{{ 'backups.logs.description' | tr }}

- {{ 'backups.logs.showLogs' | tr }} -
-
-
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 @@

{{ 'domains.renewCerts.title' | tr }} - +

@@ -386,7 +386,7 @@

{{ 'domains.syncDns.title' | tr }} - +