f9e6110f73
Adds support for creating app repos, viewing app repos and seeing the list of app repos in the Quay UI.
76 lines
3.7 KiB
HTML
76 lines
3.7 KiB
HTML
<div class="repo-list-table-element">
|
|
<div class="cor-loader" ng-if="isLoading"></div>
|
|
|
|
<div class="co-top-bar">
|
|
<span class="co-filter-box">
|
|
<span class="page-controls" total-count="orderedRepositories.entries.length" current-page="options.page" page-size="reposPerPage" style="vertical-align: top"></span>
|
|
<input class="form-control" type="text" ng-model="options.filter" placeholder="Filter Repositories..." style="margin-right: 10px;">
|
|
</span>
|
|
</div>
|
|
|
|
<div ng-if="orderedRepositories.entries.length == 0 && !isLoading && !options.filter">
|
|
<div class="empty-primary-msg" ng-if="namespaces.length != 1">You do not have any viewable repositories.</div>
|
|
<div class="empty-primary-msg" ng-if="namespaces.length == 1">This namespace doesn't have any viewable repositories.</div>
|
|
<div class="empty-secondary-msg">Either no repositories exist yet or you may not have permission to view any. If you have permission, try <a href="/new">creating a new repository</a>.</div>
|
|
</div>
|
|
|
|
<div ng-if="orderedRepositories.entries.length == 0 && !isLoading && options.filter">
|
|
<div class="empty-primary-msg">No matching repositories</div>
|
|
<div class="empty-secondary-msg">There are not matching repositories for the entered filter</div>
|
|
</div>
|
|
|
|
<table class="co-table" ng-if="orderedRepositories.entries.length && !isLoading">
|
|
<thead>
|
|
<td class="hidden-xs"
|
|
ng-class="tablePredicateClass('full_name', options.predicate, options.reverse)">
|
|
<a ng-click="orderBy('full_name')">Repository Name</a>
|
|
</td>
|
|
<td class="hidden-xs"
|
|
ng-class="tablePredicateClass('last_modified_datetime', options.predicate, options.reverse)"
|
|
style="min-width: 120px;">
|
|
<a ng-click="orderBy('last_modified_datetime')">Last Modified</a>
|
|
</td>
|
|
<td class="hidden-xs"
|
|
ng-class="tablePredicateClass('popularity', options.predicate, options.reverse)"
|
|
style="min-width: 20px;">
|
|
<a ng-click="orderBy('popularity')">Activity</a>
|
|
</td>
|
|
<td class="hidden-xs"
|
|
ng-class="tablePredicateClass('is_starred', options.predicate, options.reverse)"
|
|
style="width: 70px"
|
|
ng-if="loggedIn && repoKind != 'application'">
|
|
<a ng-click="orderBy('is_starred')">Star</a>
|
|
</td>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<tr ng-repeat="repository in orderedRepositories.entries | slice:(reposPerPage * options.page):(reposPerPage * (options.page + 1))">
|
|
<td class="repo-name-icon">
|
|
<span class="avatar" size="24" data="::getAvatarData(repository.namespace)"></span>
|
|
<a href="/repository/{{ ::repository.namespace }}/{{ ::repository.name }}" ng-if="repoKind != 'application'">
|
|
<span class="namespace">{{ ::repository.namespace }}</span>
|
|
<span class="name">{{ ::repository.name }}</span>
|
|
</a>
|
|
<a href="/application/{{ ::repository.namespace }}/{{ ::repository.name }}" ng-if="repoKind == 'application'">
|
|
<span class="namespace">{{ ::repository.namespace }}</span>
|
|
<span class="name">{{ ::repository.name }}</span>
|
|
</a>
|
|
</td>
|
|
<td class="last-modified">
|
|
<span ng-if="::repository.last_modified">
|
|
{{ ::repository.last_modified * 1000 | amCalendar }}
|
|
</span>
|
|
<span class="empty" ng-if="::!repository.last_modified">(Empty Repository)</span>
|
|
</td>
|
|
<td class="popularity hidden-xs">
|
|
<span class="strength-indicator" value="::repository.popularity" maximum="::maxPopularity"
|
|
log-base="10"></span>
|
|
</td>
|
|
<td ng-show="loggedIn && repoKind != 'application'">
|
|
<span class="repo-star" repository="::repository"
|
|
star-toggled="starToggled({'repository': repository})"></span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|