190 lines
6.6 KiB
Handlebars
190 lines
6.6 KiB
Handlebars
<SearchBar
|
|
class="consul-healthcheck-search-bar"
|
|
...attributes
|
|
@filter={{@filter}}
|
|
>
|
|
<:status as |search|>
|
|
|
|
{{#let
|
|
|
|
(t (concat "components.consul.health-check.search-bar." search.status.key ".name")
|
|
default=(array
|
|
(concat "common.search." search.status.key)
|
|
(concat "common.consul." search.status.key)
|
|
)
|
|
)
|
|
|
|
(t (concat "components.consul.health-check.search-bar." search.status.key ".options." search.status.value)
|
|
default=(array
|
|
(concat "common.search." search.status.value)
|
|
(concat "common.consul." search.status.value)
|
|
)
|
|
)
|
|
|
|
as |key value|}}
|
|
<search.RemoveFilter
|
|
aria-label={{t "common.ui.remove" item=(concat key " " value)}}
|
|
>
|
|
<dl>
|
|
<dt>{{key}}</dt>
|
|
<dd>{{value}}</dd>
|
|
</dl>
|
|
</search.RemoveFilter>
|
|
{{/let}}
|
|
|
|
</:status>
|
|
<:search as |search|>
|
|
<search.Search
|
|
@onsearch={{action @onsearch}}
|
|
@value={{@search}}
|
|
@placeholder={{t "common.search.search"}}
|
|
>
|
|
{{#if @filter.searchproperty}}
|
|
<search.Select
|
|
class="type-search-properties"
|
|
@position="right"
|
|
@onchange={{action @filter.searchproperty.change}}
|
|
@multiple={{true}}
|
|
@required={{true}}
|
|
as |components|>
|
|
<BlockSlot @name="selected">
|
|
<span>
|
|
{{t "common.search.searchproperty"}}
|
|
</span>
|
|
</BlockSlot>
|
|
<BlockSlot @name="options">
|
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
|
{{#each @filter.searchproperty.default as |prop|}}
|
|
<Option @value={{prop}} @selected={{contains prop @filter.searchproperty.value}}>
|
|
{{t (concat "common.consul." (lowercase prop))}}
|
|
</Option>
|
|
{{/each}}
|
|
{{/let}}
|
|
</BlockSlot>
|
|
</search.Select>
|
|
{{/if}}
|
|
</search.Search>
|
|
</:search>
|
|
<:filter as |search|>
|
|
<search.Select
|
|
class="type-status"
|
|
@position="left"
|
|
@onchange={{action @filter.status.change}}
|
|
@multiple={{true}}
|
|
as |components|>
|
|
<BlockSlot @name="selected">
|
|
<span>
|
|
{{t "common.consul.status"}}
|
|
</span>
|
|
</BlockSlot>
|
|
<BlockSlot @name="options">
|
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
|
{{#each (array "passing" "warning" "critical" "empty") as |state|}}
|
|
<Option class="value-{{state}}" @value={{state}} @selected={{contains state @filter.status.value}}>
|
|
{{t (concat "common.consul." state)
|
|
default=(array
|
|
(concat "common.search." state)
|
|
)
|
|
}}
|
|
</Option>
|
|
{{/each}}
|
|
{{/let}}
|
|
</BlockSlot>
|
|
</search.Select>
|
|
{{#if @filter.kind}}
|
|
<search.Select
|
|
class="type-kind"
|
|
@position="left"
|
|
@onchange={{action @filter.kind.change}}
|
|
@multiple={{true}}
|
|
as |components|>
|
|
<BlockSlot @name="selected">
|
|
<span>
|
|
{{t "components.consul.health-check.search-bar.kind.name"}}
|
|
</span>
|
|
</BlockSlot>
|
|
<BlockSlot @name="options">
|
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
|
{{#each (array "service" "node") as |item|}}
|
|
<Option @value={{item}} @selected={{contains item @filter.kind.value}}>
|
|
{{t (concat "components.consul.health-check.search-bar.kind.options." item)
|
|
default=(array
|
|
(concat "common.search." item)
|
|
)
|
|
}}
|
|
</Option>
|
|
{{/each}}
|
|
{{/let}}
|
|
</BlockSlot>
|
|
</search.Select>
|
|
{{/if}}
|
|
<search.Select
|
|
class="type-check"
|
|
@position="left"
|
|
@onchange={{action @filter.check.change}}
|
|
@multiple={{true}}
|
|
as |components|>
|
|
<BlockSlot @name="selected">
|
|
<span>
|
|
{{t "components.consul.health-check.search-bar.check.name"}}
|
|
</span>
|
|
</BlockSlot>
|
|
<BlockSlot @name="options">
|
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
|
{{#each (array "alias" "docker" "grpc" "http" "script" "serf" "tcp" "ttl") as |item|}}
|
|
<Option @value={{item}} @selected={{contains item @filter.check.value}}>
|
|
{{t (concat "components.consul.health-check.search-bar.check.options." item)
|
|
default=(array
|
|
(concat "common.search." item)
|
|
)
|
|
}}
|
|
</Option>
|
|
{{/each}}
|
|
{{/let}}
|
|
</BlockSlot>
|
|
</search.Select>
|
|
</:filter>
|
|
<:sort as |search|>
|
|
<search.Select
|
|
class="type-sort"
|
|
data-test-sort-control
|
|
@position="right"
|
|
@onchange={{action @sort.change}}
|
|
@multiple={{false}}
|
|
@required={{true}}
|
|
as |components|>
|
|
<BlockSlot @name="selected">
|
|
<span>
|
|
{{#let (from-entries (array
|
|
(array "Name:asc" (t "common.sort.alpha.asc"))
|
|
(array "Name:desc" (t "common.sort.alpha.desc"))
|
|
(array "Status:asc" (t "common.sort.status.asc"))
|
|
(array "Status:desc" (t "common.sort.status.desc"))
|
|
(array "Kind:asc" (t "components.consul.health-check.search-bar.sort.kind.asc"))
|
|
(array "Kind:desc" (t "components.consul.health-check.search-bar.sort.kind.desc"))
|
|
))
|
|
as |selectable|
|
|
}}
|
|
{{get selectable @sort.value}}
|
|
{{/let}}
|
|
</span>
|
|
</BlockSlot>
|
|
<BlockSlot @name="options">
|
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
|
<Optgroup @label={{t "common.consul.status"}}>
|
|
<Option @value="Status:asc" @selected={{eq "Status:asc" @sort.value}}>{{t "common.sort.status.asc"}}</Option>
|
|
<Option @value="Status:desc" @selected={{eq "Status:desc" @sort.value}}>{{t "common.sort.status.desc"}}</Option>
|
|
</Optgroup>
|
|
<Optgroup @label={{t "components.consul.health-check.search-bar.sort.name.name"}}>
|
|
<Option @value="Name:asc" @selected={{eq "Name:asc" @sort.value}}>{{t "common.sort.alpha.asc"}}</Option>
|
|
<Option @value="Name:desc" @selected={{eq "Name:desc" @sort.value}}>{{t "common.sort.alpha.desc"}}</Option>
|
|
</Optgroup>
|
|
<Optgroup @label={{t "components.consul.health-check.search-bar.sort.kind.name"}}>
|
|
<Option @value="Kind:asc" @selected={{eq "Kind:asc" @sort}}>Service to Node</Option>
|
|
<Option @value="Kind:desc" @selected={{eq "Kind:desc" @sort}}>Node to Service</Option>
|
|
</Optgroup>
|
|
{{/let}}
|
|
</BlockSlot>
|
|
</search.Select>
|
|
</:sort>
|
|
</SearchBar> |