{%- macro search_input(content, name="q", value="", label=_("Search"), placeholder=_("Search...")) -%} {%- set attrs = {"autocomplete": "off", "type": "search"} -%} {{ ui.input(content, name=name, value=value, label=label, placeholder=placeholder, **ui.util.augment_attrs(kwargs, attrs)) }} {%- endmacro %} {%- macro search_submit_button(content=ui.icon("search")) -%} {{ ui.button(content, type="submit", **ui.util.augment_attrs(kwargs, {"aria-label": _("Submit")})) }} {%- endmacro %} {%- macro search_sort_control(content, name="sort", selected="", options=[], label=_("Sort by:")) -%} {%- if options -%} {%- set id = ui.util.id() -%}
{%- if label -%}{%- endif %}
{%- endif %} {%- endmacro %} {%- macro search_results_text(content, error, query, count=0, type="dataset") -%}
{%- if error %} {{ _('Error: {error}').format(error=error) }} {%- elif content -%} {{ content }} {%- else %} {{ ungettext("Showing {count} result", "Showing {count} results", count).format(count=count) }} {%- endif %}
{%- endmacro %} {%- macro search_active_filters(active_filters, facet_titles, facets, use_htmx) -%} {%- if active_filters -%}

{%- for key, values in active_filters|groupby(0) -%}

{% set items = facets[key]['items'] if facets and key in facets else [] %} {{ facet_titles.get(key, key) }}: {%- for _key, value in values %} {%- call ui.util.call(ui.tag) -%} {{ h.list_dict_filter(items, 'name', 'display_name', value) }} {{- ui.icon('times') -}} {%- endcall %} {% endfor %}
{%- endfor %}

{%- endif %} {%- endmacro %} {%- macro search_form_box(content, use_htmx) -%} {%- if use_htmx -%} {%- do ui.util.augment_attrs(kwargs, {"boost": "true", "disinherit": "hx-boost", "trigger": "change, submit"}, key="hx") -%} {%- endif %} {%- call ui.util.call(ui.form, **kwargs) -%} {{ content }} {%- endcall %} {%- endmacro %} {%- macro search_form(query, sorting, sorting_options, error, facets, facet_titles, active_filters, use_htmx, search_input, count=0, query_name="q", sorting_name="sort", type="dataset") -%} {%- call ui.util.call(ui.search_form_box, use_htmx=use_htmx, **kwargs) -%} {{ search_input or ui.search_input(name=query_name, label=none, value=query, icon_button=ui.search_submit_button()) }}
{{ ui.search_results_text(error=error, type=type, count=count, query=query) }} {{ ui.search_sort_control(name=sorting_name, selected=sorting, options=sorting_options) }}
{{ ui.search_active_filters(active_filters=active_filters, facet_titles=facet_titles, facets=facets, use_htmx=use_htmx) }} {%- endcall %} {%- endmacro %}