Ensure all synched repositories are shown as tabs on home page

This commit is contained in:
Josh Stark 2019-03-16 14:08:01 +00:00
parent c7c15a659e
commit b5af2a2809
5 changed files with 133 additions and 339 deletions

1
.gitignore vendored
View File

@ -29,4 +29,5 @@ out/
*.iml
config/fleet.properties
src/main/resources/assets/js/all*.js
src/main/resources/assets/css/all*.css
.gradle/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -37,6 +37,18 @@ h2 {
background-color: #FFFFFF;
}
.nav--repositories .nav-item .nav-link {
font-family: 'Nunito', cursive;
font-weight: 600;
color: #eaeaea;
font-size: 1.6rem;
}
.nav--repositories .nav-item .nav-link.active {
color: #333;
}
.table thead tr th {
border-top: 0;

View File

@ -3,110 +3,130 @@
<@base.base title="Image Status" context="home">
<#if populatedRepositories?size &gt; 0>
<#list populatedRepositories as populatedRepository>
<div class="container">
<div class="row">
<div class="col-12">
<h2><a href="https://hub.docker.com/r/${populatedRepository.repository.name}">${populatedRepository.repository.name}</a></h2>
</div>
</div>
<#if populatedRepository.everyImageStable>
<div class="row my-3">
<div class="col-12">
<div class="fleet-alert fleet-alert--success">
<i class="fas fa-check text-success"></i> No issues reported
</div>
</div>
</div>
<#else>
<div class="row my-3">
<div class="col-12">
<div class="fleet-alert fleet-alert--warning">
<i class="fas fa-exclamation-triangle text-warning"></i> Some instability reported
</div>
</div>
</div>
</#if>
<div class="row">
<div class="col-12">
<div class="table-responsive">
<table class="table table--sortable">
<thead>
<tr>
<th>Name</th>
<th>Version</th>
<th class="sorter-pullCount">Pull Count</th>
<th class="text-center">Status</th>
<#if __AUTHENTICATED_USER?has_content>
<th>Admin</th>
</#if>
</tr>
</thead>
<tbody>
<#list populatedRepository.images as image>
<#if !image.hidden || __AUTHENTICATED_USER?has_content>
<tr <#if image.hidden>class="hidden-image"</#if> data-image-id="#{image.id}" data-image-name="${image.name}">
<td class="image-name">
<a target="_blank" href="https://hub.docker.com/r/${populatedRepository.repository.name}/${image.name}">${image.name}</a>
</td>
<td>
<#if image.version?has_content>
<code>${image.version}</code>
</#if>
</td>
<td>
<span class="number">${image.pullCount}</span>
</td>
<td class="text-center image-status">
<#if image.unstable>
<i class="fas fa-exclamation-triangle text-warning" title="Potentially unstable"></i>
<#else>
<i class="fas fa-check-circle text-success" title="No issues reported"></i>
</#if>
</td>
<#if __AUTHENTICATED_USER?has_content>
<td class="admin-actions">
<div class="dropdown">
<button class="btn btn-info btn-xsm dropdown-toggle" type="button" id="admin-actions_#{populatedRepository.repository.id}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Actions
</button>
<div class="dropdown-menu" aria-labelledby="admin-actions_#{populatedRepository.repository.id}">
<#if image.hidden>
<button type="button" class="image--show dropdown-item btn-clickable">Show in list</button>
<#else>
<button type="button" class="image--hide dropdown-item btn-clickable">Hide from list</button>
</#if>
<#if image.unstable>
<button type="button" class="image--mark-stable dropdown-item btn-clickable">Mark as stable</button>
<#else>
<button type="button" class="image--mark-unstable dropdown-item btn-clickable">Mark as unstable</button>
</#if>
<button type="button" class="dropdown-item btn-clickable" data-toggle="modal" data-target="#update-image-version-mask">Apply version mask</button>
</div>
</div>
</td>
</#if>
</tr>
</#if>
</#list>
</tbody>
</table>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-12">
<ul class="nav nav--repositories" id="all-repositories-tablist" role="tablist">
<#list populatedRepositories as populatedRepository>
<li class="nav-item">
<a class="nav-link <#if populatedRepository?index == 0>active</#if>" data-toggle="tab" role="tab" aria-controls="repository_#{populatedRepository.repository.id}" id="repository-tab_#{populatedRepository.repository.id}" href="#repository_#{populatedRepository.repository.id}">${populatedRepository.repository.name}</a>
</li>
</#list>
</ul>
</div>
</div>
</div>
</#list>
<div class="tab-content" id="repository-tab-content">
<#list populatedRepositories as populatedRepository>
<div class="tab-pane<#if populatedRepository?index == 0> show active</#if>" id="repository_#{populatedRepository.repository.id}" role="tabpanel" aria-labelledby="repository-tab_#{populatedRepository.repository.id}">
<div class="container">
<#if populatedRepository.everyImageStable>
<div class="row my-3">
<div class="col-12">
<div class="fleet-alert fleet-alert--success">
<i class="fas fa-check text-success"></i> No issues reported
</div>
</div>
</div>
<#else>
<div class="row my-3">
<div class="col-12">
<div class="fleet-alert fleet-alert--warning">
<i class="fas fa-exclamation-triangle text-warning"></i> Some instability reported
</div>
</div>
</div>
</#if>
<#if populatedRepository.images?size &gt; 0>
<div class="row">
<div class="col-12">
<div class="table-responsive">
<table class="table table--sortable">
<thead>
<tr>
<th>Name</th>
<th>Version</th>
<th class="sorter-pullCount">Pull Count</th>
<th class="text-center">Status</th>
<#if __AUTHENTICATED_USER?has_content>
<th>Admin</th>
</#if>
</tr>
</thead>
<tbody>
<#list populatedRepository.images as image>
<#if !image.hidden || __AUTHENTICATED_USER?has_content>
<tr <#if image.hidden>class="hidden-image"</#if> data-image-id="#{image.id}" data-image-name="${image.name}">
<td class="image-name">
<a target="_blank" href="https://hub.docker.com/r/${populatedRepository.repository.name}/${image.name}">${image.name}</a>
</td>
<td>
<#if image.version?has_content>
<code>${image.version}</code>
</#if>
</td>
<td>
<span class="number">${image.pullCount}</span>
</td>
<td class="text-center image-status">
<#if image.unstable>
<i class="fas fa-exclamation-triangle text-warning" title="Potentially unstable"></i>
<#else>
<i class="fas fa-check-circle text-success" title="No issues reported"></i>
</#if>
</td>
<#if __AUTHENTICATED_USER?has_content>
<td class="admin-actions">
<div class="dropdown">
<button class="btn btn-info btn-xsm dropdown-toggle" type="button" id="admin-actions_#{populatedRepository.repository.id}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Actions
</button>
<div class="dropdown-menu" aria-labelledby="admin-actions_#{populatedRepository.repository.id}">
<#if image.hidden>
<button type="button" class="image--show dropdown-item btn-clickable">Show in list</button>
<#else>
<button type="button" class="image--hide dropdown-item btn-clickable">Hide from list</button>
</#if>
<#if image.unstable>
<button type="button" class="image--mark-stable dropdown-item btn-clickable">Mark as stable</button>
<#else>
<button type="button" class="image--mark-unstable dropdown-item btn-clickable">Mark as unstable</button>
</#if>
<button type="button" class="dropdown-item btn-clickable" data-toggle="modal" data-target="#update-image-version-mask">Apply version mask</button>
</div>
</div>
</td>
</#if>
</tr>
</#if>
</#list>
</tbody>
</table>
</div>
</div>
</div>
<#else>
<div class="container">
<div class="row">
<div class="col-12 text-center p-3">
No images!
</div>
</div>
</div>
</#if>
</div>
</div>
</#list>
</div>
<#if __AUTHENTICATED_USER?has_content>
@ -128,16 +148,6 @@
</#if>
<#else>
<div class="container">
<div class="row">
<div class="col-12 text-center p-3">
No images!
</div>
</div>
</div>
</#if>
</@base.base>