Merge branch 'master' into nospinjs
Conflicts: static/partials/landing.html
This commit is contained in:
commit
5f88e89ecd
2 changed files with 157 additions and 267 deletions
|
@ -84,35 +84,34 @@
|
|||
}
|
||||
|
||||
.landing {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 562px;
|
||||
|
||||
padding: 10px;
|
||||
|
||||
color: white;
|
||||
margin-top: -19px;
|
||||
|
||||
background-color: #1d1d1d;
|
||||
background-position: left;
|
||||
background-image: url(../containers-back-black.jpg);
|
||||
background-repeat: no-repeat;
|
||||
|
||||
margin-top: -20px;
|
||||
margin-bottom: 0px;
|
||||
|
||||
padding-top: 96px;
|
||||
|
||||
min-height: 500px;
|
||||
}
|
||||
|
||||
.landing .message-container {
|
||||
position: absolute;
|
||||
top: 88px;
|
||||
left: 50px;
|
||||
width: 600px;
|
||||
|
||||
z-index: 3;
|
||||
.landing .messages {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.landing .signup-container {
|
||||
position: absolute;
|
||||
top: 100px;
|
||||
right: 50px;
|
||||
width: 350px;
|
||||
|
||||
z-index: 3;
|
||||
.landing .messages b {
|
||||
color: #94C9F7;
|
||||
}
|
||||
|
||||
.landing .signup-container input {
|
||||
.landing .messages h1 {
|
||||
font-size: 48px;
|
||||
}
|
||||
|
||||
.form-signup input {
|
||||
margin: 12px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
@ -129,179 +128,63 @@
|
|||
color: black;
|
||||
}
|
||||
|
||||
.landing .message {
|
||||
font-size: 3.4em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.landing .message b {
|
||||
color: #94C9F7;
|
||||
}
|
||||
|
||||
.landing .sub-message {
|
||||
font-size: 1.8em;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.landing .welcome-message {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.landing .welcome-message .sub-message {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.landing .welcome-message .gravatar {
|
||||
display: inline-block;
|
||||
border: 1px solid #94C9F7;
|
||||
}
|
||||
|
||||
.landing .sub-message b {
|
||||
color: #94C9F7;
|
||||
}
|
||||
|
||||
.landing .sellcall {
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
.landing .shoutouts {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
text-align: center;
|
||||
z-index: 3;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.landing .shoutout {
|
||||
display: inline-block;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
width: 300px;
|
||||
vertical-align: top;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.landing .shoutout i {
|
||||
font-size: 36px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.landing .shoutout b {
|
||||
font-size: 22px;
|
||||
display: block;
|
||||
line-height: 31px;
|
||||
}
|
||||
|
||||
.landing .shoutout {
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.landing .background-mask {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
|
||||
height: 562px;
|
||||
|
||||
background: -moz-linear-gradient(top, #141414 0%, transparent 15%, transparent 85%, #141414 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#141414), color-stop(15%,transparent), color-stop(85%,transparent), color-stop(100%,#141414));
|
||||
background: -webkit-linear-gradient(top, #141414 0%,transparent 15%,transparent 85%,#141414 100%);
|
||||
background: -o-linear-gradient(top, #141414 0%,transparent 15%,transparent 85%,#141414 100%);
|
||||
background: -ms-linear-gradient(top, #141414 0%,transparent 15%,transparent 85%,#141414 100%);
|
||||
background: linear-gradient(to bottom, #141414 0%,transparent 15%,transparent 85%,#141414 100%);
|
||||
|
||||
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.landing .background {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
|
||||
background-color: #1d1d1d;
|
||||
background-position: left;
|
||||
background-image: url(../containers-back-black.jpg);
|
||||
background-repeat: no-repeat;
|
||||
|
||||
height: 562px;
|
||||
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.landing .options {
|
||||
display: inline-block;
|
||||
padding: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.landing .options .option {
|
||||
}
|
||||
|
||||
.landing .options .or {
|
||||
margin: 14px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.landing .options .or span {
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
background: #444;
|
||||
padding: 6px;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
line-height: 36px;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.landing-footer {
|
||||
padding: 20px;
|
||||
|
||||
position: absolute;
|
||||
top: 610px;
|
||||
bottom: 0px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
|
||||
min-height: 138px;
|
||||
border-radius: 0px;
|
||||
margin-bottom: 0px;
|
||||
background-color: white;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.landing-footer .footer-column {
|
||||
display: inline-block;
|
||||
padding: 10px;
|
||||
margin-left: 20px;
|
||||
vertical-align: top;
|
||||
.landing-footer .copyright-container {
|
||||
font-size: 11px;
|
||||
color: black;
|
||||
text-align: right;
|
||||
padding-right: 30px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.landing-footer .footer-column ul {
|
||||
.landing-footer .copyright-container a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
.landing-footer .dt-logo {
|
||||
vertical-align: center;
|
||||
max-width: 150px;
|
||||
}
|
||||
|
||||
.landing-footer .copyright {
|
||||
font-size: 11px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.landing-footer ul {
|
||||
list-style-type: none;
|
||||
margin: 0px;
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.landing-footer .footer-column li {
|
||||
.landing-footer li {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.landing-footer .dt-logo {
|
||||
float: right;
|
||||
margin-top: 30px;
|
||||
margin-right: 10px;
|
||||
vertical-align: center;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.landing-footer .copyright {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
bottom: 4px;
|
||||
|
||||
font-size: 11px;
|
||||
color: black;
|
||||
.user-welcome {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#repoSearch {
|
||||
|
@ -547,6 +430,8 @@ p.editable:hover i {
|
|||
margin-bottom: 20px;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 10px;
|
||||
font-size: 14px;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.repo-listing:last-child {
|
||||
|
|
|
@ -1,110 +1,115 @@
|
|||
<div class="landing">
|
||||
<div class="background"></div>
|
||||
<div class="background-mask"></div>
|
||||
<div class="message-container" ng-show="user.anonymous">
|
||||
<div class="message">Secure hosting for <b>private</b> docker containers</div>
|
||||
<div class="sub-message">Use the docker images <b>your team</b> needs with the safety of <b>private</b> storage</div>
|
||||
<div class="sellcall"><a href="#/plans">Starting at $7/mo</a></div>
|
||||
</div>
|
||||
<div class="jumbotron landing">
|
||||
<div class="container">
|
||||
<div class="row messages">
|
||||
<div class="col-md-7">
|
||||
<div ng-show="user.anonymous">
|
||||
<h1>Secure hosting for <b>private</b> docker containers</h1>
|
||||
<h3>Use the docker images <b>your team</b> needs with the safety of <b>private</b> storage</h3>
|
||||
<div class="sellcall"><a href="#/plans">Starting at $7/mo</a></div>
|
||||
</div>
|
||||
|
||||
<div class="message-container" ng-show="!user.anonymous">
|
||||
<div ng-show="loadingmyrepos">
|
||||
<i class="icon-spinner icon-spin icon-3x"></i>
|
||||
</div>
|
||||
<div ng-show="!loadingmyrepos && myrepos.length > 0">
|
||||
<h2>Your Top Repositories</h4>
|
||||
<div class="repo-listing" ng-repeat="repository in myrepos">
|
||||
<i class="icon-hdd icon-large"></i>
|
||||
<a ng-href="#/repository/{{repository.namespace}}/{{ repository.name }}">{{repository.namespace}}/{{repository.name}}</a>
|
||||
<div class="description" ng-bind-html-unsafe="getCommentFirstLine(repository.description)"></div>
|
||||
<div ng-show="!user.anonymous">
|
||||
<div ng-show="loadingmyrepos">
|
||||
<i class="icon-spinner icon-spin icon-3x"></i>
|
||||
</div>
|
||||
<div ng-show="!loadingmyrepos && myrepos.length > 0">
|
||||
<h2>Your Top Repositories</h2>
|
||||
<div class="repo-listing" ng-repeat="repository in myrepos">
|
||||
<i class="icon-hdd icon-large"></i>
|
||||
<a ng-href="#/repository/{{repository.namespace}}/{{ repository.name }}">{{repository.namespace}}/{{repository.name}}</a>
|
||||
<div class="description" ng-bind-html-unsafe="getCommentFirstLine(repository.description)"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="!loadingmyrepos && myrepos.length == 0">
|
||||
<div class="sub-message">
|
||||
You don't have any <b>private</b> repositories yet!
|
||||
|
||||
<div class="options">
|
||||
<div class="option"><a href="#/guide">Learn how to create a repository</a></div>
|
||||
<div class="or"><span>or</span></div>
|
||||
<div class="option"><a href="#/repository">Browse the public repositories</a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- col -->
|
||||
|
||||
<div class="col-md-4 col-md-offset-1">
|
||||
<div ng-show="user.anonymous">
|
||||
<form class="form-signup" name="signupForm" ng-submit="register()" data-trigger="manual" data-content="{{ registerError }}" data-placement="left" ng-show="!awaitingConfirmation && !registering">
|
||||
<input type="text" class="form-control" placeholder="Create a username" name="username" ng-model="newUser.username" autofocus required>
|
||||
<input type="email" class="form-control" placeholder="Email address" ng-model="newUser.email" required>
|
||||
<input type="password" class="form-control" placeholder="Create a password" ng-model="newUser.password" required>
|
||||
<input type="password" class="form-control" placeholder="Verify your password" ng-model="newUser.repeatePassword" match="newUser.password" required>
|
||||
<button class="btn btn-lg btn-primary btn-block" ng-disabled="signupForm.$invalid" type="submit">Get Started!</button>
|
||||
</form>
|
||||
<div ng-show="registering" style="text-align: center">
|
||||
<span class="spin" color="#fff" style="display: inline-block"></span>
|
||||
</div>
|
||||
<div ng-show="awaitingConfirmation">
|
||||
<div class="sub-message">Thank you for registering! We have sent you an activation email. You must <b>verify your email address</b> before you can continue.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="!user.anonymous" class="user-welcome">
|
||||
<img class="gravatar" src="//www.gravatar.com/avatar/{{ user.gravatar }}?s=128&d=identicon" />
|
||||
<div class="sub-message">Welcome <b>{{ user.username }}</b>!</div>
|
||||
<button ng-show="myrepos" class="btn btn-lg btn-primary btn-block" ng-click="browseRepos()">Browse all repositories</button>
|
||||
</div>
|
||||
</div> <!-- col -->
|
||||
</div> <!-- row -->
|
||||
|
||||
<div class="row" ng-show="user.anonymous">
|
||||
<div class="col-md-4 shoutout">
|
||||
<i class="icon-lock"></i>
|
||||
<b>Secure</b>
|
||||
Store your private docker containers securely where only you and your team
|
||||
can access it
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="!loadingmyrepos && myrepos.length == 0">
|
||||
<div class="sub-message">
|
||||
You don't have any <b>private</b> repositories yet!
|
||||
|
||||
<div class="options">
|
||||
<div class="option"><a href="#/guide">Learn how to create a repository</a></div>
|
||||
<div class="or"><span>or</span></div>
|
||||
<div class="option"><a href="#/repository">Browse the public repositories</a></div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 shoutout">
|
||||
<i class="icon-cloud"></i>
|
||||
<b>Cloud Hosted</b>
|
||||
Accessible from anywhere, anytime
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="signup-container">
|
||||
<div ng-show="user.anonymous">
|
||||
<form class="form-signup" name="signupForm" ng-submit="register()" data-trigger="manual" data-content="{{ registerError }}" data-placement="left" ng-show="!awaitingConfirmation && !registering">
|
||||
<input type="text" class="form-control" placeholder="Create a username" name="username" ng-model="newUser.username" autofocus required>
|
||||
<input type="email" class="form-control" placeholder="Email address" ng-model="newUser.email" required>
|
||||
<input type="password" class="form-control" placeholder="Create a password" ng-model="newUser.password" required>
|
||||
<input type="password" class="form-control" placeholder="Verify your password" ng-model="newUser.repeatePassword" match="newUser.password" required>
|
||||
<button class="btn btn-lg btn-primary btn-block" ng-disabled="signupForm.$invalid" type="submit">Get Started!</button>
|
||||
</form>
|
||||
<div ng-show="registering" style="text-align: center">
|
||||
<i class="icon-spinner icon-spin icon-3x"></i>
|
||||
<div class="col-md-4 shoutout">
|
||||
<i class="icon-share-sign"></i>
|
||||
<b>Shareable</b>
|
||||
Have to share a container? No problem! Share with anyone you choose
|
||||
</div>
|
||||
<div ng-show="awaitingConfirmation">
|
||||
<div class="sub-message">Thank you for registering! We have sent you an activation email. You must <b>verify your email address</b> before you can continue.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="!user.anonymous">
|
||||
<div class="welcome-message">
|
||||
<img class="gravatar" src="//www.gravatar.com/avatar/{{ user.gravatar }}?s=128&d=identicon" />
|
||||
<div class="sub-message">Welcome <b>{{ user.username }}</b>!</div>
|
||||
</div>
|
||||
<button ng-show="myrepos" class="btn btn-lg btn-primary btn-block" ng-click="browseRepos()">Browse all repositories</button>
|
||||
</div>
|
||||
</div>
|
||||
</div> <!-- row -->
|
||||
</div> <!-- container -->
|
||||
</div> <!-- jumbotron -->
|
||||
|
||||
<div class="shoutouts" ng-show="user.anonymous">
|
||||
<div class="shoutout">
|
||||
<i class="icon-lock"></i>
|
||||
<b>Secure</b>
|
||||
Store your private docker containers securely where only you and your team
|
||||
can access it
|
||||
<nav class="landing-footer">
|
||||
<div class="row">
|
||||
<div class="col-md-2 col-md-offset-1">
|
||||
<h4>About</h4>
|
||||
<ul>
|
||||
<li><a href="http://blog.devtable.com/">Blog</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="shoutout">
|
||||
<i class="icon-cloud"></i>
|
||||
<b>Cloud Hosted</b>
|
||||
Accessible from anywhere, anytime
|
||||
<div class="col-md-2">
|
||||
<h4>Legal</h4>
|
||||
<ul>
|
||||
<li><a href="/tos">Terms of Service</a></li>
|
||||
<li><a href="/privacy">Privacy Policy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="shoutout">
|
||||
<i class="icon-share-sign"></i>
|
||||
<b>Shareable</b>
|
||||
Have to share a container? No problem! Share with anyone you choose
|
||||
<div class="col-md-2">
|
||||
<h4>Support</h4>
|
||||
<ul>
|
||||
<li><a href="mailto:support@quay.io">Contact Support</a></li>
|
||||
<li><a href="#/guide/">Getting Started Guide</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="navbar landing-footer">
|
||||
<div class="footer-column">
|
||||
<h4>About</h4>
|
||||
<ul>
|
||||
<li><a href="http://blog.devtable.com/">Blog</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer-column">
|
||||
<h4>Legal</h4>
|
||||
<ul>
|
||||
<li><a href="/tos">Terms of Service</a></li>
|
||||
<li><a href="/privacy">Privacy Policy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer-column">
|
||||
<h4>Support</h4>
|
||||
<ul>
|
||||
<li><a href="mailto:support@quay.io">Contact Support</a></li>
|
||||
<li><a href="#/guide/">Getting Started Guide</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a href="https://devtable.com"><img class="dt-logo" src="/static/dt-logo.png"></a>
|
||||
<span class="copyright">©2013 DevTable, LLC</span>
|
||||
</div>
|
||||
<div class="col-md-3 col-md-offset-2 copyright-container">
|
||||
<a href="https://devtable.com"><img class="dt-logo" src="/static/dt-logo.png"></a>
|
||||
<span class="copyright">©2013 DevTable, LLC</span>
|
||||
</div>
|
||||
</div> <!-- row -->
|
||||
|
||||
</nav>
|
||||
|
|
Reference in a new issue