mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 15:59:41 +02:00
* fix(registry): fetch datatable details on page/filter/order state change instead of fetching all data on first load * fix(registry): fetch tags datatable details on state change instead of fetching all data on first load * fix(registry): add pagination support for tags + loading display on data load * fix(registry): debounce on text filter to avoid querying transient matching values * refactor(registry): rebase on latest develop * feat(registries): background tags and optimisation -- need code cleanup and for-await-of to cancel on page leave * refactor(registry-management): code cleanup * feat(registry): most optimized version -- need fix for add/retag * fix(registry): addTag working without page reload * fix(registry): retag working without reload * fix(registry): remove tag working without reload * fix(registry): remove repository working with latest changes * fix(registry): disable cache on firefox * feat(registry): use jquery for all 'most used' manifests requests * feat(registry): retag with progression + rewrite manifest REST service to jquery * fix(registry): remove forgotten DI * fix(registry): pagination on repository details * refactor(registry): info message + hidding images count until fetch has been done * fix(registry): fix selection reset deleting selectAll function and not resetting status * fix(registry): resetSelection was trying to set value on a getter * fix(registry): tags were dropped when too much tags were impacted by a tag removal * fix(registry): firefox add tag + progression * refactor(registry): rewording of elements * style(registry): add space between buttons and texts in status elements * fix(registry): cancelling a retag/delete action was not removing the status panel * fix(registry): tags count of empty repositories * feat(registry): reload page on action cancel to avoid desync * feat(registry): uncancellable modal on long operations * feat(registry): modal now closes on error + modal message improvement * feat(registries): remove empty repositories from the list * fix(registry): various bugfixes * feat(registry): independant timer on async actions + modal fix
70 lines
No EOL
3.1 KiB
HTML
70 lines
No EOL
3.1 KiB
HTML
<div class="datatable">
|
|
<rd-widget>
|
|
<rd-widget-body classes="no-padding">
|
|
<div class="toolBar">
|
|
<div class="toolBarTitle">
|
|
<i class="fa" ng-class="$ctrl.titleIcon" aria-hidden="true" style="margin-right: 2px;"></i> {{ $ctrl.titleText }}
|
|
</div>
|
|
</div>
|
|
<div class="searchBar">
|
|
<i class="fa fa-search searchIcon" aria-hidden="true"></i>
|
|
<input type="text" class="searchInput" ng-model="$ctrl.state.textFilter" ng-model-options="{ debounce: 300 }" ng-change="$ctrl.onTextFilterChange()" placeholder="Search..." auto-focus>
|
|
</div>
|
|
<div class="table-responsive">
|
|
<table class="table table-hover table-filters nowrap-cells">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
<a ng-click="$ctrl.changeOrderBy('Name')">
|
|
Repository
|
|
<i class="fa fa-sort-alpha-down" aria-hidden="true" ng-if="$ctrl.state.orderBy === 'Name' && !$ctrl.state.reverseOrder"></i>
|
|
<i class="fa fa-sort-alpha-up" aria-hidden="true" ng-if="$ctrl.state.orderBy === 'Name' && $ctrl.state.reverseOrder"></i>
|
|
</a>
|
|
</th>
|
|
<th>
|
|
Tags count
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-hide="$ctrl.loading" dir-paginate="item in ($ctrl.state.filteredDataSet = ($ctrl.dataset | filter:$ctrl.state.textFilter | orderBy:$ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit))"
|
|
ng-class="{active: item.Checked}">
|
|
<td>
|
|
<a ui-sref="portainer.registries.registry.repository({repository: item.Name})" class="monospaced"
|
|
title="{{ item.Name }}">{{ item.Name }}</a>
|
|
</td>
|
|
<td>{{ item.TagsCount }}</td>
|
|
</tr>
|
|
<tr ng-if="!$ctrl.dataset || $ctrl.loading">
|
|
<td colspan="5" class="text-center text-muted">Loading...</td>
|
|
</tr>
|
|
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
|
|
<td colspan="5" class="text-center text-muted">No repository available.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="footer" ng-if="$ctrl.dataset">
|
|
<div class="infoBar" ng-if="$ctrl.state.selectedItemCount !== 0">
|
|
{{ $ctrl.state.selectedItemCount }} item(s) selected
|
|
</div>
|
|
<div class="paginationControls">
|
|
<form class="form-inline">
|
|
<span class="limitSelector">
|
|
<span style="margin-right: 5px;">
|
|
Items per page
|
|
</span>
|
|
<select class="form-control" ng-model="$ctrl.state.paginatedItemLimit" ng-change="$ctrl.changePaginationLimit()">
|
|
<option value="10">10</option>
|
|
<option value="25">25</option>
|
|
<option value="50">50</option>
|
|
<option value="100">100</option>
|
|
</select>
|
|
</span>
|
|
<dir-pagination-controls max-size="5"></dir-pagination-controls>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</rd-widget-body>
|
|
</rd-widget>
|
|
</div> |