rework backup status

* show backup progress even if not initiated by UI
* display backup progress in separate line
This commit is contained in:
Girish Ramakrishnan
2017-09-27 12:14:22 -07:00
parent 39f0e476f2
commit 44a7a2579c
3 changed files with 41 additions and 30 deletions

View File

@@ -374,15 +374,22 @@
<div ng-show="createBackup.busy" class="progress progress-striped active animateMe">
<div class="progress-bar progress-bar-success" role="progressbar" style="width: {{ createBackup.percent }}%"></div>
</div>
<br/>
</div>
</div>
<div class="row" ng-show="backupConfig.provider !== 'caas'">
<div class="col-md-11" ng-show="createBackup.busy">
<p class="text-muted status" style="text-overflow: ellipsis; white-space: nowrap; overflow: hidden">
{{ createBackup.detail || 'Syncing ...' }}
</p>
</div>
</div>
<div class="row" ng-show="backupConfig.provider !== 'caas'">
<div class="col-md-6">
<p ng-show="createBackup.busy">{{ createBackup.message }} {{ createBackup.detail }}</p>
<p ng-show="createBackup.busy">{{ createBackup.message }}</p>
<p ng-hide="createBackup.busy">
<div class="has-error" ng-show="createBackup.percent === 100 && createBackup.result">{{ createBackup.result }}</div>
<div class="text-success" ng-show="createBackup.percent === 100 && !createBackup.result"><b>Backup Successful</b></div>
</p>
</div>
<div class="col-md-6 text-right">

View File

@@ -122,6 +122,31 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
errorMessage: '',
result: '',
updateStatus: function () {
Client.progress(function (error, data) {
if (error) return window.setTimeout($scope.createBackup.updateStatus, 250);
// check if we are done
if (!data.backup || data.backup.percent >= 100) {
if (data.backup && data.backup.message) console.error('Backup message: ' + data.backup.message); // backup error message
$scope.createBackup.busy = false;
$scope.createBackup.message = '';
$scope.createBackup.detail = '';
$scope.createBackup.percent = 100; // indicates that 'result' is valid
$scope.createBackup.result = data.backup ? data.backup.message : null;
return fetchBackups();
}
$scope.createBackup.busy = true;
$scope.createBackup.percent = data.backup.percent;
$scope.createBackup.message = data.backup.message;
$scope.createBackup.detail = data.backup.detail;
window.setTimeout($scope.createBackup.updateStatus, 500);
});
},
doCreateBackup: function () {
$scope.createBackup.busy = true;
$scope.createBackup.percent = 0;
@@ -147,31 +172,7 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
return;
}
function checkIfDone() {
Client.progress(function (error, data) {
if (error) return window.setTimeout(checkIfDone, 250);
// check if we are done
if (!data.backup || data.backup.percent >= 100) {
if (data.backup && data.backup.message) console.error('Backup message: ' + data.backup.message); // backup error message
$scope.createBackup.busy = false;
$scope.createBackup.message = '';
$scope.createBackup.detail = '';
$scope.createBackup.percent = 100; // indicates that 'result' is valid
$scope.createBackup.result = data.backup ? data.backup.message : null;
return fetchBackups();
}
$scope.createBackup.percent = data.backup.percent;
$scope.createBackup.message = data.backup.message;
$scope.createBackup.detail = data.backup.detail;
window.setTimeout(checkIfDone, 500);
});
}
checkIfDone();
$scope.createBackup.updateStatus();
});
}
};
@@ -637,6 +638,9 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
getBackupConfig();
getAutoupdatePattern();
// show backup status
$scope.createBackup.updateStatus();
if ($scope.config.provider === 'caas') {
getPlans();