diff --git a/src/views/appstore.js b/src/views/appstore.js index 285a7128d..a893f7e6d 100644 --- a/src/views/appstore.js +++ b/src/views/appstore.js @@ -635,17 +635,19 @@ angular.module('Application').controller('AppStoreController', ['$scope', '$tran } function getSubscription(callback) { + var validSubscription = false; + Client.getSubscription(function (error, subscription) { if (error) { if (error.statusCode === 412) { // not registered yet - $scope.validSubscription = false; + validSubscription = false; } else if (error.statusCode === 402) { // invalid token, license error - $scope.validSubscription = false; + validSubscription = false; } else { // 424/external error? return callback(error); } } else { - $scope.validSubscription = true; + validSubscription = true; $scope.subscription = subscription; } @@ -655,45 +657,50 @@ angular.module('Application').controller('AppStoreController', ['$scope', '$tran // also update the root controller status if ($scope.$parent) $scope.$parent.updateSubscriptionStatus(); - callback(); + callback(null, validSubscription); }); } function init() { Client.getAppstoreAppsFast(function (error) { - $scope.ready = true; - if (error && error.statusCode === 402) { $scope.validSubscription = false; + $scope.ready = true; return; } else if (error) { - console.error('Failed to get apps. Will retry.', error); - return $timeout(init, 1000); + console.warning('Failed to get apps. Will retry.', error); + $timeout(init, 1000); + return; } - $scope.validSubscription = true; - $scope.showCategory(''); - // refresh everything in background - getSubscription(function (error) { if (error) console.error('Failed to get subscription.', error); }); - Client.getAppstoreApps(function (error) { if (error) console.error('Failed to fetch apps.', error); }); - Client.refreshConfig(); // refresh domain, user, group limit etc - fetchUsers(); - fetchGroups(); - fetchMemory(); + getSubscription(function (error, validSubscription) { + if (error) console.error('Failed to get subscription.', error); - // domains is required since we populate the dropdown with domains[0] - Client.getDomains(function (error, result) { - if (error) return console.error('Error getting domains.', error); + $scope.validSubscription = validSubscription; + $scope.ready = true; - $scope.domains = result; - // show install app dialog immediately if an app id was passed in the query - // hashChangeListener calls $apply, so make sure we don't double digest here - setTimeout(hashChangeListener, 1); + // refresh everything in background + Client.getAppstoreApps(function (error) { if (error) console.error('Failed to fetch apps.', error); }); + Client.refreshConfig(); // refresh domain, user, group limit etc + fetchUsers(); + fetchGroups(); + fetchMemory(); - setTimeout(function () { $('#appstoreSearch').focus(); }, 1); + // domains is required since we populate the dropdown with domains[0] + Client.getDomains(function (error, result) { + if (error) return console.error('Error getting domains.', error); + + $scope.domains = result; + + // show install app dialog immediately if an app id was passed in the query + // hashChangeListener calls $apply, so make sure we don't double digest here + setTimeout(hashChangeListener, 1); + + setTimeout(function () { $('#appstoreSearch').focus(); }, 1); + }); }); }); }