140 lines
5.0 KiB
Handlebars
140 lines
5.0 KiB
Handlebars
|
<form
|
||
|
class="consul-health-check-search-bar filter-bar"
|
||
|
...attributes
|
||
|
>
|
||
|
<div class="search">
|
||
|
<FreetextFilter
|
||
|
@onsearch={{action @onsearch}}
|
||
|
@value={{@search}}
|
||
|
@placeholder="Search"
|
||
|
>
|
||
|
<PopoverSelect
|
||
|
class="type-search-properties"
|
||
|
@position="right"
|
||
|
@onchange={{action @onfilter.searchproperty}}
|
||
|
@multiple={{true}}
|
||
|
as |components|>
|
||
|
<BlockSlot @name="selected">
|
||
|
<span>
|
||
|
Search across
|
||
|
</span>
|
||
|
</BlockSlot>
|
||
|
<BlockSlot @name="options">
|
||
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
||
|
{{#each @searchproperties as |prop|}}
|
||
|
<Option @value={{prop}} @selected={{contains prop @filter.searchproperties}}>{{prop}}</Option>
|
||
|
{{/each}}
|
||
|
{{/let}}
|
||
|
</BlockSlot>
|
||
|
</PopoverSelect>
|
||
|
</FreetextFilter>
|
||
|
</div>
|
||
|
<div class="filters">
|
||
|
<PopoverSelect
|
||
|
class="type-status"
|
||
|
@position="left"
|
||
|
@onchange={{action @onfilter.status}}
|
||
|
@multiple={{true}}
|
||
|
as |components|>
|
||
|
<BlockSlot @name="selected">
|
||
|
<span>
|
||
|
Health Status
|
||
|
</span>
|
||
|
</BlockSlot>
|
||
|
<BlockSlot @name="options">
|
||
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
||
|
<Option class="value-passing" @value="passing" @selected={{contains 'passing' @filter.statuses}}>Passing</Option>
|
||
|
<Option class="value-warning" @value="warning" @selected={{contains 'warning' @filter.statuses}}>Warning</Option>
|
||
|
<Option class="value-critical" @value="critical" @selected={{contains 'critical' @filter.statuses}}>Failing</Option>
|
||
|
<Option class="value-empty" @value="empty" @selected={{contains 'empty' @filter.statuses}}>No checks</Option>
|
||
|
{{/let}}
|
||
|
</BlockSlot>
|
||
|
</PopoverSelect>
|
||
|
|
||
|
<PopoverSelect
|
||
|
class="type-kind"
|
||
|
@position="left"
|
||
|
@onchange={{action @onfilter.kind}}
|
||
|
@multiple={{true}}
|
||
|
as |components|>
|
||
|
<BlockSlot @name="selected">
|
||
|
<span>
|
||
|
Kind
|
||
|
</span>
|
||
|
</BlockSlot>
|
||
|
<BlockSlot @name="options">
|
||
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
||
|
<Option @value="service" @selected={{contains 'service' @filter.kinds}}>Service Check</Option>
|
||
|
<Option @value="node" @selected={{contains 'node' @filter.kinds}}>Node Check</Option>
|
||
|
{{/let}}
|
||
|
</BlockSlot>
|
||
|
</PopoverSelect>
|
||
|
|
||
|
<PopoverSelect
|
||
|
class="type-check"
|
||
|
@position="left"
|
||
|
@onchange={{action @onfilter.check}}
|
||
|
@multiple={{true}}
|
||
|
as |components|>
|
||
|
<BlockSlot @name="selected">
|
||
|
<span>
|
||
|
Type
|
||
|
</span>
|
||
|
</BlockSlot>
|
||
|
<BlockSlot @name="options">
|
||
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
||
|
<Option @value="alias" @selected={{contains 'alias' @filter.checks}}>alias</Option>
|
||
|
<Option @value="docker" @selected={{contains 'docker' @filter.checks}}>Docker</Option>
|
||
|
<Option @value="grpc" @selected={{contains 'grpc' @filter.checks}}>gRPC</Option>
|
||
|
<Option @value="http" @selected={{contains 'http' @filter.checks}}>HTTP</Option>
|
||
|
<Option @value="serf" @selected={{contains 'serf' @filter.checks}}>Serf</Option>
|
||
|
<Option @value="tcp" @selected={{contains 'tcp' @filter.checks}}>TCP</Option>
|
||
|
<Option @value="ttl" @selected={{contains 'ttl' @filter.checks}}>TTL</Option>
|
||
|
{{/let}}
|
||
|
</BlockSlot>
|
||
|
</PopoverSelect>
|
||
|
|
||
|
</div>
|
||
|
<div class="sort">
|
||
|
<PopoverSelect
|
||
|
class="type-sort"
|
||
|
data-test-sort-control
|
||
|
@position="right"
|
||
|
@onchange={{action @onsort}}
|
||
|
@multiple={{false}}
|
||
|
as |components|>
|
||
|
<BlockSlot @name="selected">
|
||
|
<span>
|
||
|
{{#let (from-entries (array
|
||
|
(array "Name:asc" "A to Z")
|
||
|
(array "Name:desc" "Z to A")
|
||
|
(array "Status:asc" "Unhealthy to Healthy")
|
||
|
(array "Status:desc" "Healthy to Unhealthy")
|
||
|
(array "Kind:asc" "Service to Node")
|
||
|
(array "Kind:desc" "Node to Service")
|
||
|
))
|
||
|
as |selectable|
|
||
|
}}
|
||
|
{{get selectable @sort}}
|
||
|
{{/let}}
|
||
|
</span>
|
||
|
</BlockSlot>
|
||
|
<BlockSlot @name="options">
|
||
|
{{#let components.Optgroup components.Option as |Optgroup Option|}}
|
||
|
<Optgroup @label="Health Status">
|
||
|
<Option @value="Status:asc" @selected={{eq "Status:asc" @sort}}>Unhealthy to Healthy</Option>
|
||
|
<Option @value="Status:desc" @selected={{eq "Status:desc" @sort}}>Healthy to Unhealthy</Option>
|
||
|
</Optgroup>
|
||
|
<Optgroup @label="Check Name">
|
||
|
<Option @value="Name:asc" @selected={{eq "Name:asc" @sort}}>A to Z</Option>
|
||
|
<Option @value="Name:desc" @selected={{eq "Name:desc" @sort}}>Z to A</Option>
|
||
|
</Optgroup>
|
||
|
<Optgroup @label="Check Type">
|
||
|
<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>
|
||
|
</PopoverSelect>
|
||
|
</div>
|
||
|
</form>
|