-
-
+
+
Terminal
Logs
diff --git a/src/views/app.js b/src/views/app.js
index f2250963e..099d0c199 100644
--- a/src/views/app.js
+++ b/src/views/app.js
@@ -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);
diff --git a/src/views/apps.html b/src/views/apps.html
index f9a1e2f81..726b84e32 100644
--- a/src/views/apps.html
+++ b/src/views/apps.html
@@ -1,62 +1,4 @@
-
-
-
-
-
-
-
Fetching backups
-
This app has no backups yet.
-
-
-
-
{{ appRestore.app.message }}
-
-
-
-
-
-
-
-
-
- | |
- Created |
- Version |
- Actions |
-
-
-
-
-
|
- {{ backup.creationTime | prettyDate }} |
- v{{ backup.version }} |
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/apps.js b/src/views/apps.js
index 863d751f3..29d4f6f4b 100644
--- a/src/views/apps.js
+++ b/src/views/apps.js
@@ -35,9 +35,6 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
portBindingsEnabled: {},
show: function (app, backup) {
- // hide restore modal if open
- $('#appRestoreModal').modal('hide');
-
$scope.appClone.busy = false;
$scope.appClone.error = {};
$scope.appClone.app = app;
@@ -97,87 +94,6 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
}
};
- $scope.appRestore = {
- busy: false,
- busyFetching: false,
- error: {},
- app: {},
- backups: [],
- copyBackupIdDone: false,
- creatingBackup: false,
-
- copyBackupId: function (backup) {
- var copyText = document.getElementById('appRestoreBackupIdHelper');
- copyText.value = backup.id;
- copyText.select();
- document.execCommand('copy');
-
- $scope.appRestore.copyBackupIdDone = true;
-
- // reset after 2.5sec
- $timeout(function () { $scope.appRestore.copyBackupIdDone = false; }, 2500);
- },
-
- createBackup: function () {
- $scope.appRestore.creatingBackup = true;
-
- Client.backupApp($scope.appRestore.app.id, function (error) {
- if (error) Client.error(error);
-
- function waitForBackupFinish() {
- if ($scope.appRestore.app.installationState === 'pending_backup') return $timeout(waitForBackupFinish, 1000);
-
- // we are done, refresh the backup list
- Client.getAppBackups($scope.appRestore.app.id, function (error, backups) {
- if (error) return Client.error(error);
-
- $scope.appRestore.backups = backups;
- $scope.appRestore.creatingBackup = false;
- });
- }
-
- // reflect the new app state immediately
- Client.refreshAppCache($scope.appRestore.app.id, waitForBackupFinish);
- });
- },
-
- show: function (app) {
- $scope.reset();
-
- $scope.appRestore.app = app;
- $scope.appRestore.busyFetching = true;
- $scope.appRestore.creatingBackup = $scope.appRestore.app.installationState === 'pending_backup';
-
- $('#appRestoreModal').modal('show');
-
- Client.getAppBackups(app.id, function (error, backups) {
- if (error) {
- Client.error(error);
- } else {
- $scope.appRestore.backups = backups;
- $scope.appRestore.busyFetching = false;
- }
- });
-
- return false; // prevent propagation and default
- },
-
- restore: function (backup) {
- $scope.appRestore.busy = true;
-
- Client.restoreApp($scope.appRestore.app.id, backup.id, function (error) {
- if (error) {
- Client.error(error);
- } else {
- $('#appRestoreModal').modal('hide');
- }
-
- $scope.appRestore.busy = false;
-
- Client.refreshAppCache($scope.appRestore.app.id); // reflect the new app state immediately
- });
- }
- };
$scope.appPostInstallConfirm = {
app: {},
@@ -256,7 +172,6 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
$scope.reset = function () {
// close all dialogs
$('#appErrorModal').modal('hide');
- $('#appRestoreModal').modal('hide');
$('#appUpdateModal').modal('hide');
$('#appPostInstallConfirmModal').modal('hide');
@@ -265,17 +180,6 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
$scope.appUpdate.app = {};
$scope.appUpdate.manifest = {};
- // reset restore dialog
- $scope.appRestore.error = {};
- $scope.appRestore.app = {};
- $scope.appRestore.backups = [];
- $scope.appRestore.location = '';
- $scope.appRestore.domain = null;
- $scope.appRestore.portBindings = {};
- $scope.appRestore.portBindingsInfo = {};
- $scope.appRestore.portBindingsEnabled = {};
- $scope.appRestore.action = 'restore';
-
// post install confirmation dialog
$scope.appPostInstallConfirm.app = {};
$scope.appPostInstallConfirm.message = '';
@@ -358,7 +262,7 @@ angular.module('Application').controller('AppsController', ['$scope', '$location
});
// setup all the dialog focus handling
- ['appUpdateModal', 'appRestoreModal', 'appErrorModal'].forEach(function (id) {
+ ['appUpdateModal', 'appErrorModal'].forEach(function (id) {
$('#' + id).on('shown.bs.modal', function () {
$(this).find("[autofocus]:first").focus();
});