Improve app backup view

This commit is contained in:
Johannes Zellner
2019-09-17 16:16:48 +02:00
parent e1e0f2944b
commit ed90dbe7b7
2 changed files with 53 additions and 43 deletions
+34 -22
View File
@@ -406,29 +406,36 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.updates = {
busy: false,
error: {},
success: false,
busyCheck: false,
currentEnableAutomaticUpdate: false,
enableAutomaticUpdate: false,
show: function () {
var app = $scope.app;
$scope.updates.enableAutomaticUpdate = app.enableAutomaticUpdate;
$scope.updates.currentEnableAutomaticUpdate = app.enableAutomaticUpdate;
},
submit: function () {
toggleAutomaticUpdates: function () {
$scope.updates.busy = true;
$scope.updates.error = {};
Client.configureApp($scope.app.id, 'automatic_update', { enable: $scope.updates.enableAutomaticUpdate }, function (error) {
Client.configureApp($scope.app.id, 'automatic_update', { enable: !$scope.updates.enableAutomaticUpdate }, function (error) {
if (error) return Client.error(error);
$scope.updates.currentEnableAutomaticUpdate = $scope.updates.enableAutomaticUpdate;
$scope.updates.success = true;
$scope.updates.busy = false;
$timeout(function () {
$scope.updates.enableAutomaticUpdate = !$scope.updates.enableAutomaticUpdate;
$scope.updates.busy = false;
}, 1000);
});
},
check: function () {
$scope.updates.busyCheck = true;
Client.checkForUpdates(function (error) {
if (error) Client.error(error);
$scope.updates.busyCheck = false;
});
}
};
@@ -436,10 +443,8 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.backups = {
busy: false,
error: {},
success: false,
copyBackupIdDone: false,
currentEnableBackup: false,
enableBackup: false,
backups: [],
@@ -459,14 +464,17 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
Client.backupApp($scope.app.id, function (error) {
if (error) Client.error(error);
trackAppTask();
trackAppTask(function (error) {
if (error) return Client.error(error);
$scope.backups.show();
});
});
},
show: function () {
var app = $scope.app;
$scope.backups.currentEnableBackup = app.enableBackup;
$scope.backups.enableBackup = app.enableBackup;
Client.getAppBackups(app.id, function (error, backups) {
@@ -476,16 +484,17 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
});
},
submit: function () {
toggleAutomaticBackups: function () {
$scope.backups.busy = true;
$scope.backups.error = {};
Client.configureApp($scope.app.id, 'automatic_backup', { enable: $scope.backups.enableBackup }, function (error) {
Client.configureApp($scope.app.id, 'automatic_backup', { enable: !$scope.backups.enableBackup }, function (error) {
if (error) return Client.error(error);
$scope.backups.currentEnableBackup = $scope.backups.enableBackup;
$scope.backups.success = true;
$scope.backups.busy = false;
$timeout(function () {
$scope.backups.enableBackup = !$scope.backups.enableBackup;
$scope.backups.busy = false;
}, 1000);
});
},
@@ -674,12 +683,15 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
});
}
function trackAppTask() {
function trackAppTask(callback) {
callback = callback || function (error) { if (error) Client.error(error); };
Client.getApp(appId, function (error, app) {
if (error) Client.error(error);
if (error) return callback(error);
else $scope.app = app;
if ($scope.app.taskId) $timeout(trackAppTask, 2000); // not yet done
if ($scope.app.taskId) $timeout(trackAppTask.bind(null, callback), 2000); // not yet done
else callback();
});
}