ui/app/stack/index/template.hbs

194 lines
7.1 KiB
Handlebars

{{stack-header model=model.stack all=model.all.stacks}}
{{#if model.stack.tags}}
<section>
<div class="banner bg-info basics basics-stack-detail">
<div class="inline-block">
<label class="acc-label">{{t 'generic.tags'}}:</label>
{{#copy-inline clipboardText=model.stack.tags defaultText="stackPage.basics.tagsCopy"}}
{{#each model.stack.tags as |tag|}}
<span class="tag-xs bg-info">
<i class="icon icon-tag"></i>
{{tag}}
</span>
{{/each}}
{{/copy-inline}}
</div>
</div>
</section>
{{/if}}
<section>
{{#accordion-list as |al expandFn| }}
{{#accordion-list-item
title=(t 'stackPage.containers.header')
detail=(t 'stackPage.containers.detail')
expandOnInit=true
expandAll=al.expandAll
expand=(action expandFn)
componentName='container-table'
as | parent |
}}
{{#sortable-table
tableClassNames="double-rows"
classNames="grid sortable-table"
body=rows
searchText=searchText
sortBy=sortBy
bulkActions=true
subRows=true
pagingLabel="pagination.workload"
subSearchField="instances"
extraSearchFields=extraSearchFields
extraSearchSubFields=extraSearchSubFields
headers=sgHeaders as |sortable kind inst dt|}}
{{#if (eq kind "row")}}
{{#if (eq inst.baseType "instance")}}
{{pod-row
model=inst
dt=dt
showNode=true
expandPlaceholder=true
scalePlaceholder=true
fullColspan=sortable.fullColspan
}}
{{else}}
{{workload-row
model=inst
toggle=(action "toggleExpand" inst.id)
expanded=(array-includes expandedInstances inst.id)
searchText=searchText
subMatches=sortable.subMatches
fullColspan=sortable.fullColspan
dt=dt
}}
{{/if}}
{{else if (eq kind "nomatch")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted lacsso pt-20 pb-20">{{t 'containersPage.table.noMatch'}}</td></tr>
{{else if (eq kind "norows")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted lacsso pt-20 pb-20">{{t 'containersPage.table.noData'}}</td></tr>
{{/if}}
{{/sortable-table}}
{{/accordion-list-item}}
{{#accordion-list-item
title=(t 'stackPage.loadBalancers.header')
detail=(t 'stackPage.loadBalancers.detail')
expandAll=al.expandAll
expand=(action expandFn)
componentName='sortable-table'
as | parent |
}}
{{#component parent.intent
body=loadBalancers
bulkActions=true
classNames="grid sortable-table"
pagingLabel="pagination.container"
searchText=searchText
sortBy=sortBy
stickyHeader=false
subHeaders=containerHeaders
subRows=true
subSearchField="instances"
headers=sgHeaders as |sortable kind serv dt|}}
{{#if (eq kind "row")}}
{{workload-row
canExpand=true
expanded=(array-includes expandedInstances serv.id)
fullColspan=sortable.fullColspan
model=serv
searchText=searchText
showInstanceCount=false
subMatches=sortable.subMatches
toggle=(action "toggleExpand" serv.id)
dt=dt
}}
{{else if (eq kind "nomatch")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted pt-20 pb-20">{{t 'containersPage.table.noMatch'}}</td></tr>
{{else if (eq kind "norows")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted lacsso pt-20 pb-20">{{t 'containersPage.table.noData'}}</td></tr>
{{/if}}
{{/component}}
{{/accordion-list-item}}
{{#accordion-list-item
title=(t 'stackPage.dnsServices.header')
detail=(t 'stackPage.dnsServices.detail')
expandAll=al.expandAll
expand=(action expandFn)
componentName='sortable-table'
as | parent |
}}
{{#component parent.intent
classNames="grid sortable-table"
body=dnsServices
sortBy=sortBy
stickyHeader=false
subRows=true
pagingLabel="pagination.dnsRecord"
subHeaders=containerHeaders
subSearchField="instances"
bulkActions=true
pagingLabel="pagination.container"
headers=dnsHeaders
as |sortable kind serv dt|}}
{{#if (eq kind "row")}}
{{dns-row
model=serv
toggle=(action "toggleExpand" serv.id)
expanded=(array-includes expandedInstances serv.id)
searchText=searchText
subMatches=sortable.subMatches
fullColspan=sortable.fullColspan
dt=dt
}}
{{else if (eq kind "nomatch")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted pt-20 pb-20">{{t 'containersPage.table.noMatch'}}</td></tr>
{{else if (eq kind "norows")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted lacsso pt-20 pb-20">{{t 'dnsPage.noData'}}</td></tr>
{{/if}}
{{/component}}
{{/accordion-list-item}}
{{#accordion-list-item
title=(t 'stackPage.volumesTab.header')
detail=(t 'stackPage.volumesTab.detail')
expandAll=al.expandAll
expand=(action expandFn)
componentName='sortable-table'
as | parent |
}}
{{#component parent.intent
body=model.volumes
bulkActions=true
classNames="grid sortable-table"
isVisible=parent.expanded
pagingLabel="pagination.volume"
searchText=searchText
sortBy=sortBy
stickyHeader=false
subHeaders=containerHeaders
subRows=true
subSearchField="instances"
headers=storageHeaders as |sortable kind mount dt|
}}
{{#if (eq kind "row")}}
{{volume-row
model=mount
toggle=(action "toggleExpand" mount.id)
expanded=(array-includes expandedInstances mount.id)
searchText=searchText
subMatches=sortable.subMatches
fullColspan=sortable.fullColspan
dt=dt
}}
{{else if (eq kind "nomatch")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted pt-20 pb-20">{{t 'stackPage.volumesTab.table.noMatch'}}</td></tr>
{{else if (eq kind "norows")}}
<tr><td colspan="{{sortable.fullColspan}}" class="text-center text-muted pt-20 pb-20">{{t 'stackPage.volumesTab.table.noData'}}</td></tr>
{{/if}}
{{/component}}
{{/accordion-list-item}}
{{/accordion-list}}
</section>