{# /failures filter controls. Same grammar as /opportunities filter - collapsible
, 4-col grid, auto-submit. Different fields (Reason / Suggestions / Dataset / Author). #} {% from "components/_filter_form.html" import filter_form %} {% from "components/_filter_select.html" import filter_select %} {% from "components/_filter_text.html" import filter_text %} {% set _signals = [signals.search, signals.reason, signals.suggestions, signals.dataset, signals.author] %} {% set _hidden = {"sort": signals.sort, "direction": signals.direction} %} {% call filter_form(action="/failures", clear_href="/failures", signals=_signals, hidden=_hidden) %} {{ filter_text("search", "Search", signals.search, placeholder="Search query body or destination…", aria_label="Search failures") }} {{ filter_select("reason", "Reason", signals.reason, values=[""] + available_reasons, labels=["All reasons"] + (available_reasons | map("bq_reason_humanize") | list), titles=[""] + (available_reasons | map("bq_reason_description") | list), aria_label="Filter failures by error reason") }} {{ filter_select("suggestions", "Suggestions", signals.suggestions, values=["", "with", "without"], labels=["Any", "With", "Without"], aria_label="Filter failures by suggestion availability") }} {{ filter_select("dataset", "Dataset", signals.dataset, values=[""] + available_datasets, labels=["All datasets"] + available_datasets, aria_label="Filter failures by dataset") }} {{ filter_select("author", "Author", signals.author, values=[""] + available_authors, labels=["All authors"] + available_authors, aria_label="Filter failures by author") }} {% endcall %}