Add restore and backup logic to app view

This commit is contained in:
Johannes Zellner
2019-09-13 17:07:45 +02:00
parent a1fe79c876
commit 8f8aa31304
4 changed files with 115 additions and 202 deletions

View File

@@ -53,22 +53,6 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.backupsEnabled = true;
$scope.disableIndexingTemplate = '# Disable search engine indexing\n\nUser-agent: *\nDisallow: /';
$scope.stopAppTask = function (taskId) {
Client.stopTask(taskId, function (error) {
if (error) Client.error(error);
});
};
$scope.restartApp = function () {
$scope.appIsRestarting = true;
Client.restartApp($scope.app.id, function (error) {
if (error) Client.error(error);
$scope.appIsRestarting = false;
});
};
$scope.scrollTo = function (elemId) {
var elem = document.getElementById(elemId);
elem.scrollIntoView();
@@ -394,12 +378,14 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
error: {},
success: false,
currentEnableAutomaticUpdate: false,
enableAutomaticUpdate: false,
show: function () {
var app = $scope.app;
$scope.updates.enableAutomaticUpdate = app.enableAutomaticUpdate;
$scope.updates.currentEnableAutomaticUpdate = app.enableAutomaticUpdate;
},
submit: function () {
@@ -409,6 +395,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
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;
});
@@ -419,13 +406,43 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
busy: false,
error: {},
success: false,
copyBackupIdDone: false,
currentEnableBackup: false,
enableBackup: false,
backups: [],
copyBackupId: function (backup) {
var copyText = document.getElementById('backupIdHelper');
copyText.value = backup.id;
copyText.select();
document.execCommand('copy');
$scope.backups.copyBackupIdDone = true;
// reset after 2.5sec
$timeout(function () { $scope.backups.copyBackupIdDone = false; }, 2500);
},
createBackup: function () {
Client.backupApp($scope.app.id, function (error) {
if (error) Client.error(error);
trackAppTask();
});
},
show: function () {
var app = $scope.app;
$scope.backups.currentEnableBackup = app.enableBackup;
$scope.backups.enableBackup = app.enableBackup;
Client.getAppBackups(app.id, function (error, backups) {
if (error) return Client.error(error);
$scope.backups.backups = backups;
});
},
submit: function () {
@@ -435,9 +452,20 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
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;
});
},
restore: function (backup) {
Client.restoreApp($scope.app.id, backup.id, function (error) {
if (error) return Client.error(error);
backup.ackRestore = false;
trackAppTask();
});
}
};
@@ -468,6 +496,25 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
}
};
$scope.debug = {
stopAppTask: function (taskId) {
Client.stopTask(taskId, function (error) {
// we can ignore a call trying to cancel an already done task
if (error && error.statusCode !== 409) Client.error(error);
});
},
restartApp: function () {
$scope.appIsRestarting = true;
Client.restartApp($scope.app.id, function (error) {
if (error) Client.error(error);
$scope.appIsRestarting = false;
});
}
};
function fetchUsers(callback) {
Client.getUsers(function (error, users) {
if (error) return callback(error);