Track backup progress
This commit is contained in:
@@ -495,12 +495,16 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
|
||||
$scope.backups = {
|
||||
busy: false,
|
||||
busyCreate: false,
|
||||
error: {},
|
||||
copyBackupIdDone: false,
|
||||
|
||||
enableBackup: false,
|
||||
backups: [],
|
||||
|
||||
taskProgress: 0,
|
||||
taskMessage: '',
|
||||
|
||||
copyBackupId: function (backup) {
|
||||
var copyText = document.getElementById('backupIdHelper');
|
||||
copyText.value = backup.id;
|
||||
@@ -513,11 +517,18 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
$timeout(function () { $scope.backups.copyBackupIdDone = false; }, 2500);
|
||||
},
|
||||
|
||||
createBackup: function () {
|
||||
Client.backupApp($scope.app.id, function (error) {
|
||||
trackBackupTask: function () {
|
||||
$scope.backups.busyCreate = true;
|
||||
|
||||
refreshApp(function (error) {
|
||||
if (error) Client.error(error);
|
||||
|
||||
trackAppTask(function (error) {
|
||||
$scope.backups.busyCreate = false;
|
||||
|
||||
trackAppTask(function (data) {
|
||||
$scope.backups.taskProgress = data.percent;
|
||||
$scope.backups.taskMessage = data.message;
|
||||
}, function (error) {
|
||||
if (error) return Client.error(error);
|
||||
|
||||
$scope.backups.show();
|
||||
@@ -525,6 +536,18 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
});
|
||||
},
|
||||
|
||||
createBackup: function () {
|
||||
$scope.backups.busyCreate = true;
|
||||
$scope.backups.taskProgress = 0;
|
||||
$scope.backups.taskMessage = '';
|
||||
|
||||
Client.backupApp($scope.app.id, function (error) {
|
||||
if (error) Client.error(error);
|
||||
|
||||
$scope.backups.trackBackupTask();
|
||||
});
|
||||
},
|
||||
|
||||
show: function () {
|
||||
var app = $scope.app;
|
||||
|
||||
@@ -765,12 +788,20 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
});
|
||||
}
|
||||
|
||||
function trackAppTask(callback) {
|
||||
function trackAppTask(progressCallback, callback) {
|
||||
progressCallback = progressCallback || function () {};
|
||||
callback = callback || function (error) { if (error) Client.error(error); };
|
||||
|
||||
// app will be refreshed on interval
|
||||
if ($scope.app.taskId) $timeout(trackAppTask.bind(null, callback), 2000); // not yet done
|
||||
else callback();
|
||||
if (!$scope.app.taskId) return callback();
|
||||
|
||||
Client.getTask($scope.app.taskId, function (error, result) {
|
||||
if (error) console.error(error);
|
||||
|
||||
progressCallback(result);
|
||||
|
||||
// app will be refreshed on interval
|
||||
$timeout(trackAppTask.bind(null, progressCallback, callback), 2000); // not yet done
|
||||
});
|
||||
}
|
||||
|
||||
Client.onReady(function () {
|
||||
@@ -782,6 +813,9 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
|
||||
|
||||
$scope.setView($routeParams.view || 'display');
|
||||
|
||||
// track on page load backup if active
|
||||
if (app.installationState === ISTATES.PENDING_BACKUP) $scope.backups.trackBackupTask();
|
||||
|
||||
asyncSeries([
|
||||
fetchUsers,
|
||||
fetchGroups,
|
||||
|
||||
Reference in New Issue
Block a user