diff --git a/webadmin/src/index.html b/webadmin/src/index.html index fdc1c6e8a..55be8ea16 100644 --- a/webadmin/src/index.html +++ b/webadmin/src/index.html @@ -139,6 +139,26 @@ + + +
@@ -163,6 +183,11 @@ Update available +
  • + + Setup Auto Update Subscription + +
  • My Apps
  • diff --git a/webadmin/src/js/main.js b/webadmin/src/js/main.js index 90f741259..0b43e2347 100644 --- a/webadmin/src/js/main.js +++ b/webadmin/src/js/main.js @@ -1,12 +1,14 @@ 'use strict'; -angular.module('Application').controller('MainController', ['$scope', '$route', '$interval', 'Client', function ($scope, $route, $interval, Client) { +angular.module('Application').controller('MainController', ['$scope', '$route', '$interval', '$timeout', 'Client', 'AppStore', function ($scope, $route, $interval, $timeout, Client, AppStore) { $scope.initialized = false; $scope.user = Client.getUserInfo(); $scope.installedApps = Client.getInstalledApps(); $scope.config = {}; $scope.status = {}; $scope.client = Client; + $scope.currentSubscription = null; + $scope.appstoreConfig = {}; $scope.update = { busy: false, @@ -99,6 +101,31 @@ angular.module('Application').controller('MainController', ['$scope', '$route', }); } + function getSubscription() { + Client.getAppstoreConfig(function (error, result) { + if (error) return console.error(error); + + if (result.token) { + $scope.appstoreConfig = result; + + AppStore.getProfile(result.token, function (error, result) { + if (error) return console.error(error); + + $scope.appstoreConfig.profile = result; + + AppStore.getSubscription($scope.appstoreConfig, function (error, result) { + if (error) return console.error(error); + + $scope.currentSubscription = result; + + // check again to give more immediate feedback once a subscription was setup + if (result.plan.id === 'free') $timeout(getSubscription, 5000); + }); + }); + } + }); + } + Client.getStatus(function (error, status) { if (error) return $scope.error(error); @@ -159,7 +186,11 @@ angular.module('Application').controller('MainController', ['$scope', '$route', $scope.initialized = true; - if ($scope.user.admin) runConfigurationChecks(); + if ($scope.user.admin) { + runConfigurationChecks(); + + if ($scope.config.provider !== 'caas') getSubscription(); + } }); }); });