diff --git a/src/cloudron.js b/src/cloudron.js index f22d921eb..499b74cac 100644 --- a/src/cloudron.js +++ b/src/cloudron.js @@ -721,7 +721,7 @@ function migrate(size, region, callback) { function unlock(error) { debug('Failed to migrate', error); locker.unlock(locker.OP_MIGRATE); - progress.set(progress.MIGRATE, -1, error.message); + progress.set(progress.MIGRATE, -1, 'Backup failed: ' + error.message); } progress.set(progress.MIGRATE, 10, 'Backing up for migration'); diff --git a/webadmin/src/js/update.js b/webadmin/src/js/update.js index 40787cff3..0820717a1 100644 --- a/webadmin/src/js/update.js +++ b/webadmin/src/js/update.js @@ -17,15 +17,26 @@ app.controller('Controller', ['$scope', '$http', '$interval', function ($scope, $http.get('/api/v1/cloudron/progress').success(function(data, status) { if (status === 404) return; // just wait until we create the progress.json on the server side if (status !== 200 || typeof data !== 'object') return console.error(status, data); - if (data.update === null) return $scope.loadWebadmin(); + if (data.update === null && data.migrate === null) return $scope.loadWebadmin(); - if (data.update.percent === -1) { - $scope.title = 'Update Error'; - $scope.error = true; - $scope.message = data.update.message; - } else { - $scope.percent = data.update.percent; - $scope.message = data.update.message; + if (data.update) { + if (data.update.percent === -1) { + $scope.title = 'Update Error'; + $scope.error = true; + $scope.message = data.update.message; + } else { + $scope.percent = data.update.percent; + $scope.message = data.update.message; + } + } else { // migrating + if (data.migrate.percent === -1) { + $scope.title = 'Migration Error'; + $scope.error = true; + $scope.message = data.migrate.message; + } else { + $scope.percent = data.migrate.percent; + $scope.message = data.migrate.message; + } } }).error(function (data, status) { console.error(status, data);