Merge branch 'master' of ssh://bitbucket.org/yackob03/quay
Conflicts: static/js/app.js
This commit is contained in:
commit
20765b7e37
10 changed files with 316 additions and 71 deletions
33
static/partials/guide.html
Normal file
33
static/partials/guide.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
<div class="container">
|
||||
<div class="alert alert-warning">Warning: Quay requires docker version 0.7 or higher to work</div>
|
||||
|
||||
<h2>Getting started guide</h2>
|
||||
<div class="container">
|
||||
|
||||
<h3>Pushing a repository to Quay</h3>
|
||||
<div class="container">
|
||||
First, tag the image with your repository name:<br><br>
|
||||
<pre>docker tag <i>0u123imageid</i> quay.io/<i>repo_namespace/repo_name</i></pre>
|
||||
<br>
|
||||
Second, push the repository to Quay:<br><br>
|
||||
<pre>docker push quay.io/<i>repo_namespace/repo_name</i></pre>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h3>Pulling a repository from Quay</h3>
|
||||
<div class="container">
|
||||
<div class="alert alert-info">Note: <b>Private</b> repositories require you to be <b>logged in</b> or the pull will fail. See below for how to sign into Quay if you have never done so before. </div>
|
||||
To pull a repository from Quay, run the following command:
|
||||
<br><br>
|
||||
<pre>docker pull quay.io/<i>path/to/repository</i></pre>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h3>Signing into to Quay <span class="label label-default">Optional</span></h3>
|
||||
<div class="container">
|
||||
If you have never pushed a repository to Quay and wish to pull a <b>private</b> repository, you can sign into Quay by running the following command:
|
||||
<br><br>
|
||||
<pre>docker login quay.io</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,31 +1,64 @@
|
|||
<div class="landing">
|
||||
<div class="background"></div>
|
||||
<div class="background-mask"></div>
|
||||
<div class="message-container">
|
||||
<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="">Starting at $7/mo</a></div>
|
||||
</div>
|
||||
|
||||
<div class="message-container" ng-show="!user.anonymous">
|
||||
<div ng-show="loadingmyrepos">
|
||||
<div class="spin"></div>
|
||||
</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>
|
||||
</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 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">
|
||||
<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">
|
||||
<div class="sub-message">Some message about how awesome it is to be a Quay user goes here.</div>
|
||||
<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 class="shoutouts">
|
||||
<div class="shoutouts" ng-show="user.anonymous">
|
||||
<div class="shoutout">
|
||||
<i class="icon-lock"></i>
|
||||
<b>Secure</b>
|
||||
|
@ -68,6 +101,7 @@
|
|||
<h4>Support</h4>
|
||||
<ul>
|
||||
<li><a href="">Contact Support</a></li>
|
||||
<li><a href="#/guide/">Getting Started Guide</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -3,10 +3,31 @@
|
|||
</div>
|
||||
|
||||
<div class="container" ng-show="!loading">
|
||||
<h3>Repositories</h3>
|
||||
<div class="repo-listing" ng-repeat="repository in repositories">
|
||||
<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 class="repo-list">
|
||||
<h3>Your Repositories</h3>
|
||||
<div ng-show="private_repositories.length > 0">
|
||||
<div class="repo-listing" ng-repeat="repository in private_repositories">
|
||||
<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="private_repositories.length == 0" style="padding:20px;">
|
||||
<div class="alert alert-info">
|
||||
<h4>You don't have any repositories yet!</h4>
|
||||
<a href="#/guide"><b>Click here</b> to learn how to create a repository</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="repo-list">
|
||||
<h3>Top Public Repositories</h3>
|
||||
<div class="repo-listing" ng-repeat="repository in public_repositories">
|
||||
<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>
|
||||
|
|
|
@ -50,60 +50,65 @@
|
|||
<i class="icon-edit"></i>
|
||||
</p>
|
||||
|
||||
<!-- Tab bar -->
|
||||
<ul class="nav nav-tabs">
|
||||
<li>
|
||||
<span class="tag-dropdown dropdown" title="Tags">
|
||||
<i class="icon-bookmark"></i>
|
||||
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">{{currentTag.name}} <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="tag in repo.tags">
|
||||
<a href="{{ '#/repository/' + repo.namespace + '/' + repo.name + '/tag/' + tag.name }}">{{tag.name}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
</li>
|
||||
<li id="current-image-tab" class="active" ng-click="showTab('current-image')"><a href="javascript:void(0)">Current Image</a></li>
|
||||
<li id="image-history-tab" ng-click="showTab('image-history')"><a href="javascript:void(0)">Image History</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="current-image">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>Created</dt>
|
||||
<dd am-time-ago="parseDate(currentTag.image.created)"></dd>
|
||||
|
||||
<dt>ID</dt>
|
||||
<dd>{{ currentTag.image.id }}</dd>
|
||||
</dl>
|
||||
|
||||
<div ng-show="currentTag.image.comment">
|
||||
<strong>Description:</strong>
|
||||
<blockquote style="margin-top: 10px;" ng-bind-html-unsafe="getMarkedDown(currentTag.image.comment)">
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="repo-content" ng-show="!currentTag.image">
|
||||
<div class="empty-message">(This repository is empty)</div>
|
||||
</div>
|
||||
|
||||
<div id="image-history" style="display: none">
|
||||
<div ng-hide="imageHistory">
|
||||
<div class="spin"></div>
|
||||
<div class="repo-content" ng-show="currentTag.image">
|
||||
<!-- Tab bar -->
|
||||
<ul class="nav nav-tabs">
|
||||
<li>
|
||||
<span class="tag-dropdown dropdown" title="Tags">
|
||||
<i class="icon-bookmark"></i>
|
||||
<a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">{{currentTag.name}} <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="tag in repo.tags">
|
||||
<a href="{{ '#/repository/' + repo.namespace + '/' + repo.name + '/tag/' + tag.name }}">{{tag.name}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
</li>
|
||||
<li id="current-image-tab" class="active" ng-click="showTab('current-image')"><a href="javascript:void(0)">Current Image</a></li>
|
||||
<li id="image-history-tab" ng-click="showTab('image-history')"><a href="javascript:void(0)">Image History</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="current-image">
|
||||
<dl class="dl-horizontal">
|
||||
<dt>Created</dt>
|
||||
<dd am-time-ago="parseDate(currentTag.image.created)"></dd>
|
||||
<dt>ID</dt>
|
||||
<dd>{{ currentTag.image.id }}</dd>
|
||||
</dl>
|
||||
|
||||
<div ng-show="currentTag.image.comment">
|
||||
<strong>Description:</strong>
|
||||
<blockquote style="margin-top: 10px;" ng-bind-html-unsafe="getMarkedDown(currentTag.image.comment)">
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="imageHistory">
|
||||
<table class="images">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td>Created</td>
|
||||
<td>Comment</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<div id="image-history" style="display: none">
|
||||
<div ng-hide="imageHistory">
|
||||
<div class="spin"></div>
|
||||
</div>
|
||||
|
||||
<div ng-show="imageHistory">
|
||||
<table class="images">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>ID</td>
|
||||
<td>Created</td>
|
||||
<td>Comment</td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tr ng-repeat="image in imageHistory">
|
||||
<td class="image-id" title="{{ image.id }}">{{ image.id }}</td>
|
||||
<td><span am-time-ago="parseDate(image.created)"></span></td>
|
||||
<td ng-bind-html-unsafe="getCommentFirstLine(image.comment)"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<tr ng-repeat="image in imageHistory">
|
||||
<td class="image-id" title="{{ image.id }}">{{ image.id }}</td>
|
||||
<td><span am-time-ago="parseDate(image.created)"></span></td>
|
||||
<td ng-bind-html-unsafe="getCommentFirstLine(image.comment)"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
Reference in a new issue