Add the business plans in.

This commit is contained in:
yackob03 2013-11-05 14:40:45 -05:00
parent 1cd4fa8d9b
commit b11ab44285
6 changed files with 145 additions and 46 deletions

View file

@ -309,24 +309,46 @@
color: #428bca;
}
.plans .all-plans .business-feature {
color: #46ac39;
}
.plans-list {
text-align: center;
margin-bottom: 25px;
}
.plans-list .plan-container {
padding: 5px;
}
.plans-list .plan {
width: 245px;
vertical-align: top;
display: inline-block;
padding: 10px;
margin-right: 10px;
border: 1px solid #eee;
border-top: 4px solid #94C9F7;
margin-top: 10px;
font-size: 1.4em;
margin-top: 5px;
}
.plans-list .plan.small {
border: 1px solid #ddd;
border-top: 4px solid #428bca;
margin-top: 0px;
font-size: 1.6em;
}
.plans-list .plan.business-plan {
border: 1px solid #eee;
border-top: 4px solid #94F794;
}
.plans-list .plan.bus-small {
border: 1px solid #ddd;
border-top: 4px solid #47A447;
margin-top: 0px;
font-size: 1.6em;
}
.plans-list .plan:last-child {
@ -349,7 +371,7 @@
}
.plan-price:after {
content: "/ month";
content: "/ mo";
position: absolute;
bottom: 0px;
right: 20px;
@ -365,6 +387,10 @@
color: #428bca;
}
.plans-list .plan.business-plan .count b {
color: #46ac39;
}
.plans-list .plan .description {
font-size: 1em;
font-size: 16px;
@ -386,14 +412,6 @@
margin-right: 5px;
}
.plans-list .plan.small {
border: 1px solid #ddd;
border-top: 4px solid #428bca;
margin-top: 0px;
font-size: 1.6em;
}
.plans .plan-faq dd{
margin-bottom: 20px;
}

View file

@ -119,15 +119,19 @@ quayApp = angular.module('quay', ['restangular', 'angularMoment', 'angulartics',
var getPlans = Restangular.one('plans');
getPlans.get().then(function(data) {
for(var i = 0; i < data.plans.length; i++) {
planDict[data.plans[i].stripeId] = data.plans[i];
var i = 0;
for(i = 0; i < data.user.length; i++) {
planDict[data.user[i].stripeId] = data.user[i];
}
plans = data.plans;
for(i = 0; i < data.business.length; i++) {
planDict[data.business[i].stripeId] = data.business[i];
}
plans = data;
callback(plans);
}, function() { callback([]); });
};
planService.getPlanList = function(callback) {
planService.getPlans = function(callback) {
planService.verifyLoaded(callback);
};
@ -137,10 +141,15 @@ quayApp = angular.module('quay', ['restangular', 'angularMoment', 'angulartics',
});
};
planService.getMinimumPlan = function(privateCount, callback) {
planService.getMinimumPlan = function(privateCount, isBusiness, callback) {
planService.verifyLoaded(function() {
for (var i = 0; i < plans.length; i++) {
var plan = plans[i];
var planSource = plans.user;
if (isBusiness) {
planSource = plans.business;
}
for (var i = 0; i < planSource.length; i++) {
var plan = planSource[i];
if (plan.privateRepos >= privateCount) {
callback(plan);
return;

View file

@ -131,7 +131,7 @@ function SigninCtrl($scope, $location, $timeout, Restangular, KeyService, UserSe
function PlansCtrl($scope, UserService, PlanService) {
// Load the list of plans.
PlanService.getPlanList(function(plans) {
PlanService.getPlans(function(plans) {
$scope.plans = plans;
$scope.status = 'ready';
});
@ -673,8 +673,8 @@ function RepoAdminCtrl($scope, Restangular, $routeParams, $rootScope) {
function UserAdminCtrl($scope, $timeout, Restangular, PlanService, UserService, KeyService, $routeParams) {
// Load the list of plans.
PlanService.getPlanList(function(plans) {
$scope.plans = plans;
PlanService.getPlans(function(plans) {
$scope.plans = plans.user;
});
$scope.$watch(function () { return UserService.currentUser(); }, function (currentUser) {

View file

@ -7,15 +7,39 @@
All plans include <span class="feature">unlimited public repositories</span> and <span class="feature">unlimited sharing</span>. All paid plans have a <span class="feature">14-day free trial</span>.
</div>
<div class="plans-list">
<div class="plan" ng-repeat="plan in plans" ng-class="plan.stripeId">
<div class="plan-title">{{ plan.title }}</div>
<div class="plan-price">${{ plan.price/100 }}</div>
<div class="count"><b>{{ plan.privateRepos }}</b> private repositories</div>
<div class="description">{{ plan.audience }}</div>
<div class="smaller">SSL secured connections</div>
<div class="row plans-list">
<div class="col-xs-0 col-lg-1"></div>
<div class="col-lg-2 col-xs-4 plan-container" ng-repeat="plan in plans.user">
<div class="plan" ng-class="plan.stripeId">
<div class="plan-title">{{ plan.title }}</div>
<div class="plan-price">${{ plan.price/100 }}</div>
<div class="count"><b>{{ plan.privateRepos }}</b> private repositories</div>
<div class="description">{{ plan.audience }}</div>
<div class="smaller">SSL secured connections</div>
<button class="btn btn-primary btn-block" ng-click="buyNow(plan.stripeId)">Sign Up Now</button>
</div>
</div>
</div>
<button class="btn btn-primary btn-block" ng-click="buyNow(plan.stripeId)">Sign Up Now</button>
<div class="callout">
Business Plan Pricing
</div>
<div class="all-plans">
All business plans include all of the personal plan features, plus: <span class="business-feature">organizations</span> and <span class="business-feature">teams</span> with <span class="business-feature">delegated access</span> to the organization. All business plans have a <span class="business-feature">14-day free trial</span>.
</div>
<div class="row plans-list">
<div class="col-xs-0 col-lg-1"></div>
<div class="col-lg-2 col-xs-4 plan-container" ng-repeat="plan in plans.business">
<div class="plan business-plan" ng-class="plan.stripeId">
<div class="plan-title">{{ plan.title }}</div>
<div class="plan-price">${{ plan.price/100 }}</div>
<div class="count"><b>{{ plan.privateRepos }}</b> private repositories</div>
<div class="description">{{ plan.audience }}</div>
<div class="smaller">SSL secured connections</div>
<button class="btn btn-success btn-block" ng-click="buyNow(plan.stripeId)">Sign Up Now</button>
</div>
</div>
</div>