diff --git a/src/views/app.js b/src/views/app.js
index 873b1cfc0..6da18dcbe 100644
--- a/src/views/app.js
+++ b/src/views/app.js
@@ -551,9 +551,6 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
enableBackup: false,
backups: [],
- taskProgress: 0,
- taskMessage: '',
-
copyBackupId: function (backup) {
var copyText = document.getElementById('backupIdHelper');
copyText.value = backup.id;
@@ -574,12 +571,8 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.backups.busyCreate = false;
- trackAppTask(function (data) {
- $scope.backups.taskProgress = data.percent;
- $scope.backups.taskMessage = data.message;
- }, function (error) {
+ waitForAppTask(function (error) {
if (error) return Client.error(error);
-
$scope.backups.show();
});
});
@@ -587,8 +580,6 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
createBackup: function () {
$scope.backups.busyCreate = true;
- $scope.backups.taskProgress = 0;
- $scope.backups.taskMessage = '';
Client.backupApp($scope.app.id, function (error) {
if (error) Client.error(error);
@@ -927,6 +918,18 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
Client.getApp($scope.app.id, function (error, app) {
if (error) return callback(error);
+ if (app.taskId) {
+ Client.getTask(app.taskId, function (error, task) {
+ if (error) return callback(error);
+
+ app.taskProgress = task ? task.percent : 10; // start with 10 to avoid empty progress bar
+ app.taskProgressMessage = task ? task.message : '';
+ });
+ } else {
+ app.taskProgress = 0;
+ app.taskProgressMessage = '';
+ }
+
$scope.app = app;
// Immediately move to debug view on error
@@ -936,20 +939,13 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
});
}
- function trackAppTask(progressCallback, callback) {
- progressCallback = progressCallback || function () {};
+ function waitForAppTask(callback) {
callback = callback || function () {};
if (!$scope.app.taskId) return callback();
- Client.getTask($scope.app.taskId, function (error, result) {
- if (error) console.error(error);
-
- progressCallback(result);
-
- // app will be refreshed on interval
- $timeout(trackAppTask.bind(null, progressCallback, callback), 2000); // not yet done
- });
+ // app will be refreshed on interval
+ $timeout(waitForAppTask.bind(null, callback), 2000); // not yet done
}
Client.onReady(function () {
@@ -981,7 +977,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location'
$scope.backups.show();
$scope.updates.show();
- var refreshTimer = $interval(function () { refreshApp(); }, 3000); // call with inline function to avoid iteration argument passed see $interval docs
+ var refreshTimer = $interval(function () { refreshApp(); }, 2000); // call with inline function to avoid iteration argument passed see $interval docs
$scope.$on('$destroy', function () {
$interval.cancel(refreshTimer);
});