show cloudron account in the settings view

This commit is contained in:
Johannes Zellner
2017-06-06 11:16:56 +02:00
parent 95ba51dfb2
commit aa8b4f1fba
2 changed files with 54 additions and 5 deletions

View File

@@ -265,10 +265,6 @@
<td class="text-muted" style="vertical-align: top;">Name</td>
<td class="text-right" style="vertical-align: top; white-space: nowrap;">{{ config.cloudronName }} <a href="" ng-click="cloudronNameChange.show()"><i class="fa fa-pencil text-small"></i></a></td>
</tr>
<tr ng-show="appstoreConfig.profile">
<td class="text-muted" style="vertical-align: top;">App store account</td>
<td class="text-right" style="vertical-align: top; white-space: nowrap;">{{ appstoreConfig.profile.email }}</td>
</tr>
<tr ng-show="config.provider === 'caas'">
<td class="text-muted" style="vertical-align: top;">Model</td>
<td class="text-right" style="vertical-align: top; white-space: nowrap;">{{ config.size }} - {{ config.region }}</td>
@@ -320,6 +316,44 @@
</div>
</div>
<div class="section-header" ng-show="backupConfig.provider !== 'caas'">
<div class="text-left">
<h3>Cloudron.io Account</h3>
</div>
</div>
<div class="card" style="margin-bottom: 15px;" ng-show="backupConfig.provider !== 'caas'">
<div class="row" ng-show="currentSubscription.plan.id === 'free'">
<div class="col-xs-12">
A cloudron.io subscription will provide you with effortless automatic app and platform updates.
</div>
</div>
<br/>
<div class="row">
<div class="col-xs-6">
<span class="text-muted">Account Email</span>
</div>
<div class="col-xs-6 text-right">
<a ng-href="{{ config.webServerOrigin + '/console.html#/userprofile' }}" target="_blank">{{ appstoreConfig.profile.email }}</a>
</div>
</div>
<div class="row">
<div class="col-xs-6">
<span class="text-muted">Subscription</span>
</div>
<div class="col-xs-6 text-right">
<span>{{ currentSubscription.plan.name }}</span>
</div>
</div>
<br/>
<div class="row">
<div class="col-xs-12">
<a class="btn btn-primary pull-right" ng-href="{{ config.webServerOrigin + '/console.html#/userprofile?view=subscription' }}" target="_blank" ng-show="currentSubscription.plan && currentSubscription.plan.id !== 'free'">Change Subscription</a>
<a class="btn btn-success pull-right" ng-href="{{ config.webServerOrigin + '/console.html#/userprofile?view=subscription' }}" target="_blank" ng-show="currentSubscription.plan.id === 'free'">Setup Subscription</a>
</div>
</div>
</div>
<div class="section-header">
<div class="text-left">
<h3>Backups</h3>

View File

@@ -1,6 +1,6 @@
'use strict';
angular.module('Application').controller('SettingsController', ['$scope', '$location', '$rootScope', 'Client', 'AppStore', function ($scope, $location, $rootScope, Client, AppStore) {
angular.module('Application').controller('SettingsController', ['$scope', '$location', '$rootScope', '$timeout', 'Client', 'AppStore', function ($scope, $location, $rootScope, $timeout, Client, AppStore) {
Client.onReady(function () { if (!Client.getUserInfo().admin) $location.path('/'); });
$scope.client = Client;
@@ -20,6 +20,8 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
$scope.availablePlans = [];
$scope.currentPlan = null;
$scope.currentSubscription = null;
// List is from http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
$scope.s3Regions = [
{ name: 'Asia Pacific (Mumbai)', value: 'ap-south-1' },
@@ -500,6 +502,17 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
});
}
function getSubscription() {
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);
});
}
function getPlans() {
AppStore.getSizes(function (error, result) {
if (error) return console.error(error);
@@ -614,6 +627,8 @@ angular.module('Application').controller('SettingsController', ['$scope', '$loca
if (error) return console.error(error);
$scope.appstoreConfig.profile = result;
getSubscription();
});
}
});