Unify the free trial period

Fixes #263
This commit is contained in:
Jake Moshenko 2015-08-10 17:36:13 -04:00
parent 4dfab5b8e2
commit 0cbc96a54b
4 changed files with 92 additions and 45 deletions

View file

@ -15,6 +15,7 @@ PLANS = [
'audience': 'For smaller teams', 'audience': 'For smaller teams',
'bus_features': False, 'bus_features': False,
'deprecated': True, 'deprecated': True,
'free_trial_days': 14,
}, },
{ {
'title': 'Basic', 'title': 'Basic',
@ -24,24 +25,37 @@ PLANS = [
'audience': 'For your basic team', 'audience': 'For your basic team',
'bus_features': False, 'bus_features': False,
'deprecated': True, 'deprecated': True,
'free_trial_days': 14,
}, },
{ {
'title': 'Medium', 'title': 'Yacht',
'price': 2200,
'privateRepos': 20,
'stripeId': 'medium',
'audience': 'For medium teams',
'bus_features': False,
'deprecated': True,
},
{
'title': 'Large',
'price': 5000, 'price': 5000,
'privateRepos': 50, 'privateRepos': 20,
'stripeId': 'large', 'stripeId': 'bus-coreos-trial',
'audience': 'For larger teams', 'audience': 'For small businesses',
'bus_features': True,
'deprecated': True,
'free_trial_days': 180,
},
{
'title': 'Personal',
'price': 1200,
'privateRepos': 5,
'stripeId': 'personal',
'audience': 'Individuals',
'bus_features': False, 'bus_features': False,
'deprecated': True, 'deprecated': True,
'free_trial_days': 14,
},
{
'title': 'Skiff',
'price': 2500,
'privateRepos': 10,
'stripeId': 'bus-micro',
'audience': 'For startups',
'bus_features': True,
'deprecated': True,
'free_trial_days': 14,
}, },
{ {
'title': 'Yacht', 'title': 'Yacht',
@ -51,6 +65,27 @@ PLANS = [
'audience': 'For small businesses', 'audience': 'For small businesses',
'bus_features': True, 'bus_features': True,
'deprecated': True, 'deprecated': True,
'free_trial_days': 14,
},
{
'title': 'Freighter',
'price': 10000,
'privateRepos': 50,
'stripeId': 'bus-medium',
'audience': 'For normal businesses',
'bus_features': True,
'deprecated': True,
'free_trial_days': 14,
},
{
'title': 'Tanker',
'price': 20000,
'privateRepos': 125,
'stripeId': 'bus-large',
'audience': 'For large businesses',
'bus_features': True,
'deprecated': True,
'free_trial_days': 14,
}, },
# Active plans # Active plans
@ -62,51 +97,57 @@ PLANS = [
'audience': 'Committment to FOSS', 'audience': 'Committment to FOSS',
'bus_features': False, 'bus_features': False,
'deprecated': False, 'deprecated': False,
'free_trial_days': 30,
}, },
{ {
'title': 'Personal', 'title': 'Personal',
'price': 1200, 'price': 1200,
'privateRepos': 5, 'privateRepos': 5,
'stripeId': 'personal', 'stripeId': 'personal-30',
'audience': 'Individuals', 'audience': 'Individuals',
'bus_features': False, 'bus_features': False,
'deprecated': False, 'deprecated': False,
'free_trial_days': 30,
}, },
{ {
'title': 'Skiff', 'title': 'Skiff',
'price': 2500, 'price': 2500,
'privateRepos': 10, 'privateRepos': 10,
'stripeId': 'bus-micro', 'stripeId': 'bus-micro-30',
'audience': 'For startups', 'audience': 'For startups',
'bus_features': True, 'bus_features': True,
'deprecated': False, 'deprecated': False,
'free_trial_days': 30,
}, },
{ {
'title': 'Yacht', 'title': 'Yacht',
'price': 5000, 'price': 5000,
'privateRepos': 20, 'privateRepos': 20,
'stripeId': 'bus-coreos-trial', 'stripeId': 'bus-small-30',
'audience': 'For small businesses', 'audience': 'For small businesses',
'bus_features': True, 'bus_features': True,
'deprecated': False, 'deprecated': False,
'free_trial_days': 30,
}, },
{ {
'title': 'Freighter', 'title': 'Freighter',
'price': 10000, 'price': 10000,
'privateRepos': 50, 'privateRepos': 50,
'stripeId': 'bus-medium', 'stripeId': 'bus-medium-30',
'audience': 'For normal businesses', 'audience': 'For normal businesses',
'bus_features': True, 'bus_features': True,
'deprecated': False, 'deprecated': False,
'free_trial_days': 30,
}, },
{ {
'title': 'Tanker', 'title': 'Tanker',
'price': 20000, 'price': 20000,
'privateRepos': 125, 'privateRepos': 125,
'stripeId': 'bus-large', 'stripeId': 'bus-large-30',
'audience': 'For large businesses', 'audience': 'For large businesses',
'bus_features': True, 'bus_features': True,
'deprecated': False, 'deprecated': False,
'free_trial_days': 30,
}, },
] ]

View file

@ -838,12 +838,12 @@ i.toggle-icon:hover {
font-size: 1.4em; font-size: 1.4em;
} }
.plans-list .plan.bus-small, .plans-list .plan.bus-coreos-trial { .plans-list .plan.bus-small, .plans-list .plan.bus-small-30 {
border-top: 6px solid #46ac39; border-top: 6px solid #46ac39;
margin-top: -10px; margin-top: -10px;
} }
.plans-list .plan.bus-small .plan-box, .plans-list .plan.bus-coreos-trial .plan-box { .plans-list .plan.bus-small .plan-box, .plans-list .plan.bus-small-30 .plan-box {
background: black !important; background: black !important;
} }
@ -934,7 +934,7 @@ i.toggle-icon:hover {
margin-bottom: 6px; margin-bottom: 6px;
} }
.plans-list .plan.bus-small button, .plans-list .plan.bus-coreos-trial button { .plans-list .plan.bus-small button, .plans-list .plan.bus-small-30 button {
font-size: 1em; font-size: 1em;
} }
@ -942,7 +942,7 @@ i.toggle-icon:hover {
padding-top: 248px; padding-top: 248px;
} }
.plans-list .features-bar .feature .count { .plans-list .features-bar .feature .count-panel {
padding: 10px; padding: 10px;
} }
@ -972,7 +972,8 @@ i.toggle-icon:hover {
padding-bottom: 0px; padding-bottom: 0px;
} }
.plans-list .plan .feature { .plans-list .plan .feature,
.plans-list .plan .count-feature {
text-align: center; text-align: center;
padding: 10px; padding: 10px;
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
@ -1008,7 +1009,7 @@ i.toggle-icon:hover {
background: #46ac39; background: #46ac39;
} }
.plans-list .plan .count, .plans-list .features-bar .count { .plans-list .plan .count-panel, .plans-list .features-bar .count-panel {
background: white; background: white;
border-bottom: 0px; border-bottom: 0px;
text-align: center !important; text-align: center !important;
@ -1016,8 +1017,7 @@ i.toggle-icon:hover {
padding: 10px; padding: 10px;
} }
.plans-list .plan .count b, .plans-list .features-bar .count b { .plans-list .plan .count-panel b, .plans-list .features-bar .count-panel b {
font-size: 1.5em;
display: block; display: block;
} }
@ -1048,14 +1048,20 @@ i.toggle-icon:hover {
} }
} }
.plans-list .plan .count { .plans-list .plan .count-panel {
margin-bottom: 10px; margin-bottom: 10px;
} }
.plans-list .plan .count b { .plans-list .plan .count b {
font-size: 1.5em;
vertical-align: text-bottom;
color: #428bca; color: #428bca;
} }
.plans-list .plan .count-feature {
line-height: 1.5em;
}
.plans-list .plan.business-plan .count b { .plans-list .plan.business-plan .count b {
color: #46ac39; color: #46ac39;
} }
@ -1879,7 +1885,7 @@ p.editable:hover i {
margin-right: 10px; margin-right: 10px;
} }
.repo .repo-controls .count { .repo .repo-controls .count-panel {
display: inline-block; display: inline-block;
padding-left: 4px; padding-left: 4px;
padding-right: 4px; padding-right: 4px;
@ -1895,7 +1901,7 @@ p.editable:hover i {
-moz-transition: -moz-transform 500ms ease-in-out; -moz-transition: -moz-transform 500ms ease-in-out;
} }
.repo .repo-controls .count.visible { .repo .repo-controls .count-panel.visible {
transform: scaleX(1); transform: scaleX(1);
-webkit-transform: scaleX(1); -webkit-transform: scaleX(1);
-moz-transform: scaleX(1); -moz-transform: scaleX(1);

View file

@ -12,7 +12,7 @@
<div class="col-md-7"> <div class="col-md-7">
<h1>Secure hosting for <b>private</b> Docker<a class="disclaimer-link" href="/disclaimer" target="_self">*</a> repositories</h1> <h1>Secure hosting for <b>private</b> Docker<a class="disclaimer-link" href="/disclaimer" target="_self">*</a> repositories</h1>
<h3>Use the Docker images <b>your team</b> needs with the safety of <b>private</b> repositories</h3> <h3>Use the Docker images <b>your team</b> needs with the safety of <b>private</b> repositories</h3>
<a href="/plans/?trial-plan=bus-coreos-trial" class="call-to-action">Get 20 free private repos for 6 months<i class="fa fa-arrow-right"></i></a> <a href="/plans/" class="call-to-action">Start your free 30 day trial today<i class="fa fa-arrow-right"></i></a>
</div> <!-- col --> </div> <!-- col -->
<div class="col-md-4 col-md-offset-1"> <div class="col-md-4 col-md-offset-1">

View file

@ -41,13 +41,6 @@
</span> </span>
<i class="fa fa-calendar visible-lg"></i> <i class="fa fa-calendar visible-lg"></i>
</div> </div>
<div class="feature">
<span class="context-tooltip" bs-tooltip="tooltip.title" data-container="body" data-placement="right"
data-title="Grant subsets of users in an organization their own permissions, either on a global basis or a per-repository basis">
Teams
</span>
<i class="fa fa-group visible-lg"></i>
</div>
<div class="feature"> <div class="feature">
<span class="context-tooltip" bs-tooltip="tooltip.title" data-container="body" data-placement="right" <span class="context-tooltip" bs-tooltip="tooltip.title" data-container="body" data-placement="right"
data-title="Every action take within an organization is logged in detail, with the ability to visualize logs and download them"> data-title="Every action take within an organization is logged in detail, with the ability to visualize logs and download them">
@ -55,11 +48,18 @@
</span> </span>
<i class="fa fa-bar-chart-o visible-lg"></i> <i class="fa fa-bar-chart-o visible-lg"></i>
</div> </div>
<div class="feature">
<span class="context-tooltip" bs-tooltip="tooltip.title" data-container="body" data-placement="right"
data-title="Grant subsets of users in an organization their own permissions, either on a global basis or a per-repository basis">
Teams
</span>
<i class="fa fa-group visible-lg"></i>
</div>
<div class="feature"> <div class="feature">
<span class="context-tooltip" bs-tooltip="tooltip.title" data-container="body" data-placement="right" <span class="context-tooltip" bs-tooltip="tooltip.title" data-container="body" data-placement="right"
data-title="All plans have a free trial"> data-title="All plans have a free trial">
<span class="hidden-sm-inline">Free Trial</span> <span class="hidden-sm-inline">Free Trial Days</span>
<span class="visible-sm-inline">Free Trial</span> <span class="visible-sm-inline">Free Trial Days</span>
</span> </span>
<i class="fa fa-clock-o visible-lg"></i> <i class="fa fa-clock-o visible-lg"></i>
</div> </div>
@ -76,27 +76,27 @@
</div> </div>
<div class="features hidden-xs"> <div class="features hidden-xs">
<div class="count"><b>{{ plan.privateRepos }}</b> private repositories</div> <div class="count count-panel"><b>{{ plan.privateRepos }}</b> private repositories</div>
<div class="feature present"></div>
<div class="feature present"></div> <div class="feature present"></div>
<div class="feature present"></div> <div class="feature present"></div>
<div class="feature present"></div> <div class="feature present"></div>
<div class="feature present"></div> <div class="feature present"></div>
<div class="feature present"></div> <div class="feature present"></div>
<div class="feature" ng-class="plan.bus_features ? 'present' : ''"></div> <div class="feature" ng-class="plan.bus_features ? 'present' : ''"></div>
<div class="feature" ng-class="plan.bus_features ? 'present' : ''"></div> <div class="count-feature count"><b>{{ plan.free_trial_days }}</b></div>
<div class="feature present"></div>
</div> </div>
<div class="features visible-xs"> <div class="features visible-xs">
<div class="count"><b>{{ plan.privateRepos }}</b> private repositories</div> <div class="count count-panel"><b>{{ plan.privateRepos }}</b> private repositories</div>
<div class="feature present">Unlimited Public Repositories</div> <div class="feature present">Unlimited Public Repositories</div>
<div class="feature present">SSL Encryption</div> <div class="feature present">SSL Encryption</div>
<div class="feature present">Robot accounts</div> <div class="feature present">Robot accounts</div>
<div class="feature present">Dockerfile Build</div> <div class="feature present">Dockerfile Build</div>
<div class="feature present">Invoice History</div> <div class="feature present">Invoice History</div>
<div class="feature present">Logging</div>
<div class="feature" ng-class="plan.bus_features ? 'present' : 'notpresent'">Teams</div> <div class="feature" ng-class="plan.bus_features ? 'present' : 'notpresent'">Teams</div>
<div class="feature" ng-class="plan.bus_features ? 'present' : 'notpresent'">Logging</div> <div class="count-feature count"><b>{{ plan.free_trial_days }}</b> Days Free</div>
<div class="feature present">Free Trial</div>
</div> </div>
<button class="btn btn-block" ng-class="plan.bus_features ? 'btn-success' : 'btn-primary'" <button class="btn btn-block" ng-class="plan.bus_features ? 'btn-success' : 'btn-primary'"