Merge branch 'master' of github.com:coreos-inc/quay

This commit is contained in:
Jimmy Zelinskie 2015-01-13 11:03:16 -05:00
commit 1b34ea13c9
7 changed files with 86 additions and 33 deletions

View file

@ -89,6 +89,8 @@ class QuayDeferredPermissionUser(Identity):
if not self._permissions_loaded: if not self._permissions_loaded:
logger.debug('Loading user permissions after deferring.') logger.debug('Loading user permissions after deferring.')
user_object = model.get_user_by_uuid(self.id) user_object = model.get_user_by_uuid(self.id)
if user_object is None:
return super(QuayDeferredPermissionUser, self).can(permission)
# Add the superuser need, if applicable. # Add the superuser need, if applicable.
if (user_object.username is not None and if (user_object.username is not None and

View file

@ -1347,13 +1347,16 @@ i.toggle-icon:hover {
position: relative; position: relative;
} }
.plan-price:after {
@media (min-width: 768px) {
.plan-price:after {
content: "/ mo"; content: "/ mo";
position: absolute; position: absolute;
bottom: 0px; bottom: 0px;
right: 20px; right: 20px;
font-size: 12px; font-size: 12px;
color: #aaa; color: #aaa;
}
} }
.plans-list .plan .count { .plans-list .plan .count {
@ -1516,9 +1519,6 @@ i.toggle-icon:hover {
right: 0px; right: 0px;
} }
.landing-filter.signedin {
}
.landing-content { .landing-content {
z-index: 2; z-index: 2;
} }
@ -1528,7 +1528,6 @@ i.toggle-icon:hover {
} }
.landing .call-to-action { .landing .call-to-action {
height: 40px;
font-size: 18px; font-size: 18px;
padding-left: 14px; padding-left: 14px;
padding-right: 14px; padding-right: 14px;
@ -3547,6 +3546,22 @@ p.editable:hover i {
font-size: 16px; font-size: 16px;
} }
.plans-table ul {
margin-top: 10px;
padding: 0px;
}
.plans-table ul li {
padding: 4px;
margin: 0px;
}
.plans-table ul li .plan-info {
padding: 4px;
}
.repo-breadcrumb-element .crumb { .repo-breadcrumb-element .crumb {
cursor: pointer; cursor: pointer;
} }

View file

@ -19,8 +19,21 @@
<li><a ng-href="{{ user.organizations.length ? '/organizations/' : '/tour/organizations/' }}" target="{{ appLinkTarget() }}" quay-section="organization">Organizations</a></li> <li><a ng-href="{{ user.organizations.length ? '/organizations/' : '/tour/organizations/' }}" target="{{ appLinkTarget() }}" quay-section="organization">Organizations</a></li>
</ul> </ul>
<!-- Phone -->
<ul class="nav navbar-nav navbar-right visible-xs" ng-switch on="user.anonymous">
<li ng-switch-when="false">
<a href="/user/" class="user-view" target="{{ appLinkTarget() }}">
<span class="avatar" size="32" hash="user.avatar"></span>
{{ user.username }}
</a>
</li>
<li ng-switch-default>
<a class="user-view" href="/signin/" target="{{ appLinkTarget() }}">Sign in</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right" ng-switch on="user.anonymous"> <!-- Normal -->
<ul class="nav navbar-nav navbar-right hidden-xs" ng-switch on="user.anonymous">
<li> <li>
<form class="navbar-form navbar-left" role="search"> <form class="navbar-form navbar-left" role="search">
<div class="form-group"> <div class="form-group">

View file

@ -31,11 +31,16 @@
ng-show="!planLoading"></div> ng-show="!planLoading"></div>
<!-- Plans Table --> <!-- Plans Table -->
<div class="visible-xs" style="margin-top: 10px"></div>
<table class="table table-hover plans-list-table" ng-show="!planLoading"> <table class="table table-hover plans-list-table" ng-show="!planLoading">
<thead> <thead>
<td>Plan</td> <td>Plan</td>
<td>Private Repositories</td> <td>
<td style="min-width: 64px">Price</td> <span class="hidden-xs">Private Repositories</span>
<span class="visible-xs"><i class="fa fa-hdd-o"></i></span>
</td>
<td style="min-width: 64px"><span class="hidden-xs">Price</span><span class="visible-xs">$/mo</span></td>
<td></td> <td></td>
</thead> </thead>

View file

@ -1,4 +1,21 @@
<div class="plans-table-element"> <div class="plans-table-element">
<ul class="plans-table-list visible-xs">
<li ng-repeat="plan in plans" ng-class="currentPlan == plan ? 'active' : ''">
<a class="btn" href="javascript:void(0)"
ng-class="currentPlan == plan ? 'btn-primary' : 'btn-default'"
ng-click="setPlan(plan)">
{{ plan.title }}
</a>
<div class="plan-info">
${{ plan.price / 100 }} / month -
{{ plan.privateRepos }} repositories
</div>
</li>
</ul>
<div class="hidden-xs">
<table class="table table-hover plans-table-table" ng-show="plans"> <table class="table table-hover plans-table-table" ng-show="plans">
<thead> <thead>
<th>Plan</th> <th>Plan</th>
@ -20,4 +37,5 @@
</td> </td>
</tr> </tr>
</table> </table>
</div>
</div> </div>

View file

@ -2645,7 +2645,7 @@ quayApp.directive('focusablePopoverContent', ['$timeout', '$popover', function (
if (!scope) { return; } if (!scope) { return; }
scope.$apply(function() { scope.$apply(function() {
if (!scope) { return; } if (!scope || !$scope.$hide) { return; }
scope.$hide(); scope.$hide();
}); });
}; };

View file

@ -54,14 +54,14 @@
<input id="orgName" name="orgName" type="text" class="form-control" placeholder="Organization Name" <input id="orgName" name="orgName" type="text" class="form-control" placeholder="Organization Name"
ng-model="org.name" required autofocus data-trigger="manual" data-content="{{ createError }}" ng-model="org.name" required autofocus data-trigger="manual" data-content="{{ createError }}"
data-placement="bottom" data-container="body" ng-pattern="/^[a-z0-9_]{4,30}$/"> data-placement="bottom" data-container="body" ng-pattern="/^[a-z0-9_]{4,30}$/">
<span class="description">This will also be the namespace for your repositories</span> <span class="description">This will also be the namespace for your repositories. Must be alphanumeric and all lowercase.</span>
</div> </div>
<div class="form-group nested"> <div class="form-group nested">
<label for="orgName">Organization Email</label> <label for="orgName">Organization Email</label>
<input id="orgEmail" name="orgEmail" type="email" class="form-control" placeholder="Organization Email" <input id="orgEmail" name="orgEmail" type="email" class="form-control" placeholder="Organization Email"
ng-model="org.email" required> ng-model="org.email" required>
<span class="description">This address must be different from your account's email</span> <span class="description">This address must be different from your account's email.</span>
</div> </div>
<!-- Plans Table --> <!-- Plans Table -->