diff --git a/src/views/app.html b/src/views/app.html index 9ea618c11..3437d5aa1 100644 --- a/src/views/app.html +++ b/src/views/app.html @@ -200,7 +200,9 @@
- + +
{{ location.error.location }}
+
@@ -456,15 +458,16 @@
Last updated {{ app.updateTime | prettyDate }} +
+ Automatic Updates {{ updates.enableAutomaticUpdate ? 'Enabled' : 'Disabled' }} +
+
-
- - -
-
- +
+ +
@@ -504,8 +507,16 @@
+
-
+
+ + +
+
+
+
+
@@ -513,19 +524,6 @@
{{ app.message }}
-
- -
-
-
-
-
- - -
-
- -
diff --git a/src/views/app.js b/src/views/app.js index 47dbf8ddd..4d97b5b9c 100644 --- a/src/views/app.js +++ b/src/views/app.js @@ -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(); }); }