Enable HTML5 mode for routing.

This commit is contained in:
yackob03 2013-10-10 19:06:04 -04:00
parent 5cca40e41d
commit ce81431cd3
7 changed files with 26 additions and 20 deletions

View file

@ -34,8 +34,9 @@ def load_user(username):
return None
@app.route('/', methods=['GET'])
def index():
@app.route('/', methods=['GET'], defaults={'path': ''})
@app.route('/<path:path>') # Catch all
def index(path):
return send_file('templates/index.html')

View file

@ -122,6 +122,8 @@ quayApp = angular.module('quay', ['restangular', 'angularMoment', 'angulartics',
$analyticsProvider.virtualPageviews(true);
$locationProvider.html5Mode(true);
$routeProvider.
when('/repository/:namespace/:name', {templateUrl: '/static/partials/view-repo.html', controller: RepoCtrl}).
when('/repository/:namespace/:name/tag/:tag', {templateUrl: '/static/partials/view-repo.html', controller: RepoCtrl}).

View file

@ -5,7 +5,7 @@
<div ng-show="user.anonymous">
<h1>Secure hosting for <b>private</b> docker repositories</h1>
<h3>Use the docker images <b>your team</b> needs with the safety of <b>private</b> repositories</h3>
<div class="sellcall"><a href="#/plans">Private repository plans starting at $7/mo</a></div>
<div class="sellcall"><a href="/plans">Private repository plans starting at $7/mo</a></div>
</div>
<div ng-show="!user.anonymous">
@ -16,7 +16,7 @@
<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>
<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>
@ -25,9 +25,9 @@
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="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 class="option"><a href="/repository">Browse the public repositories</a></div>
</div>
</div>
</div>
@ -157,7 +157,7 @@
<h4>Support</h4>
<ul>
<li><a href="mailto:support@quay.io">Contact Support</a></li>
<li><a href="#/guide/">Getting Started Guide</a></li>
<li><a href="/guide/">Getting Started Guide</a></li>
</ul>
</div>

View file

@ -8,7 +8,7 @@
<div class="container repo repo-admin" ng-show="!loading && repo && permissions">
<div class="header">
<a href="{{ '#/repository/' + repo.namespace + '/' + repo.name }}" class="back"><i class="icon-chevron-left"></i></a>
<a href="{{ '/repository/' + repo.namespace + '/' + repo.name }}" class="back"><i class="icon-chevron-left"></i></a>
<h3>
<i class="icon-hdd icon-large"></i> <span style="color: #aaa;"> {{repo.namespace}}</span> <span style="color: #ccc">/</span> {{repo.name}}
</h3>

View file

@ -8,7 +8,7 @@
<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>
<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>
@ -16,7 +16,7 @@
<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>
<a href="/guide"><b>Click here</b> to learn how to create a repository</a>
</div>
</div>
@ -26,7 +26,7 @@
<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>
<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>

View file

@ -18,7 +18,7 @@
<span style="color: #aaa;"> {{repo.namespace}}</span> <span style="color: #ccc">/</span> {{repo.name}}
<span class="settings-cog" ng-show="repo.can_admin" title="Repository Settings">
<a href="{{ '#/repository/' + repo.namespace + '/' + repo.name + '/admin' }}">
<a href="{{ '/repository/' + repo.namespace + '/' + repo.name + '/admin' }}">
<i class="icon-cog icon-large"></i>
</a>
</span>
@ -63,7 +63,7 @@
<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>
<a href="{{ '/repository/' + repo.namespace + '/' + repo.name + '/tag/' + tag.name }}">{{tag.name}}</a>
</li>
</ul>
</span>

View file

@ -2,9 +2,12 @@
<html ng-app="quay">
<head>
<title ng-bind="title + ' · Quay'">Quay - Private Docker Repository</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Hosted private docker repositories. Includes full user management and history. Free for public repositories.">
<meta name="google-site-verification" content="GalDznToijTsHYmLjJvE4QaB9uk_IP16aaGDz5D75T4" />
<meta name="fragment" content="!" />
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css">
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.no-icons.min.css">
@ -60,15 +63,15 @@ mixpanel.init(isProd ? "50ff2b2569faa3a51c8f5724922ffb7e" : "38014a0f27e7bdc3ff8
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Quay</a>
<a class="navbar-brand" href="/">Quay</a>
</div>
<!-- Collapsable stuff -->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li><a ng-href="#/repository/">Repositories</a></li>
<li><a ng-href="#/guide/">Getting Started Guide</a></li>
<li><a ng-href="#/plans/">Plans and Pricing</a></li>
<li><a ng-href="/repository/">Repositories</a></li>
<li><a ng-href="/guide/">Getting Started Guide</a></li>
<li><a ng-href="/plans/">Plans and Pricing</a></li>
</ul>
@ -90,16 +93,16 @@ mixpanel.init(isProd ? "50ff2b2569faa3a51c8f5724922ffb7e" : "38014a0f27e7bdc3ff8
</a>
<ul class="dropdown-menu">
<li>
<a href="#/user">
<a href="/user">
Account Settings
<span class="badge" ng-show="user.askForPassword">1</span>
</a>
</li>
<li><a href="/signout">Sign out</a></li>
<li><a href="/signout" target="_self">Sign out</a></li>
</ul>
</li>
<li ng-switch-default>
<a href="/signin">Sign in</a>
<a href="/signin" target="_self">Sign in</a>
</li>
</ul>
</div><!-- /.navbar-collapse -->