rework update ui
- this is not modal anymore - can be canceled
This commit is contained in:
@@ -26,16 +26,16 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
|
||||
};
|
||||
|
||||
$scope.update = {
|
||||
error: {},
|
||||
error: {}, // this is for the dialog
|
||||
busy: false,
|
||||
percent: 0,
|
||||
message: '',
|
||||
errorMessage: '', // this shows inline
|
||||
|
||||
show: function (form) {
|
||||
show: function () {
|
||||
$scope.update.error.generic = null;
|
||||
$scope.update.busy = false;
|
||||
|
||||
form.$setPristine();
|
||||
form.$setUntouched();
|
||||
|
||||
if (!$scope.config.update.box.sourceTarballUrl) {
|
||||
$('#setupSubscriptionModal').modal('show');
|
||||
} else {
|
||||
@@ -43,9 +43,52 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
|
||||
}
|
||||
},
|
||||
|
||||
submit: function () {
|
||||
stopUpdate: function () {
|
||||
Client.stopTask('update', function (error) {
|
||||
if (error) {
|
||||
if (error.statusCode === 409) {
|
||||
$scope.update.errorMessage = 'No update is currently in progress';
|
||||
} else {
|
||||
console.error(error);
|
||||
$scope.update.errorMessage = error.message;
|
||||
}
|
||||
|
||||
$scope.update.busy = false;
|
||||
|
||||
return;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
updateStatus: function () {
|
||||
Client.getTaskProgress('update', function (error, data) {
|
||||
if (error) return window.setTimeout($scope.update.updateStatus, 2000);
|
||||
|
||||
if (!data.active) {
|
||||
$scope.update.busy = false;
|
||||
$scope.update.message = '';
|
||||
$scope.update.percent = 100; // indicates that 'result' is valid
|
||||
$scope.update.errorMessage = data.errorMessage;
|
||||
|
||||
if (!data.errorMessage) window.location.reload(true); // assume success
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$scope.update.busy = true;
|
||||
$scope.update.percent = data.percent;
|
||||
$scope.update.message = data.message;
|
||||
|
||||
window.setTimeout($scope.update.updateStatus, 500);
|
||||
});
|
||||
},
|
||||
|
||||
startUpdate: function () {
|
||||
$scope.update.error.generic = null;
|
||||
$scope.update.busy = true;
|
||||
$scope.update.percent = 0;
|
||||
$scope.update.message = '';
|
||||
$scope.update.errorMessage = '';
|
||||
|
||||
Client.update(function (error) {
|
||||
if (error) {
|
||||
@@ -59,7 +102,9 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
|
||||
return;
|
||||
}
|
||||
|
||||
window.location.href = '/update.html';
|
||||
$('#updateModal').modal('hide');
|
||||
|
||||
$scope.update.updateStatus();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user