{% if filter_error %}
Filter Error: {{ filter_error }}
{% endif %} {% if events %} {% for event in events %} {# Per-adapter one-line summary, dispatched by adapter name with a generic fallback (no hardcoded list). Captured once so it serves both the Subject cell and the map popup (via data-subject). #} {% set subject_summary %}{% include ["_event_summaries/" ~ event.adapter ~ ".html", "_event_summaries/_default.html"] %}{% endset %} {# Location: generic _enriched.geocoder reader, then top-level named fields, then coordinates. No adapter-specific logic. #} {% set d = (event.data.get('data') or {}).get('data') or {} %} {% set gc = (d.get('_enriched') or {}).get('geocoder') or {} %} {% set loc_local = gc.get('city') or d.get('city') or gc.get('county') or d.get('county') %} {% set loc_state = gc.get('state') or d.get('state') %} {% set loc_country = gc.get('country') or d.get('country') %} {% set loc_parts = [loc_local, loc_state, loc_country] | select | list %} {% endfor %}
Time Location Subject Adapter
{{ event.time_human }} {% if loc_parts %}{{ loc_parts | join(', ') }}{% elif gc.get('landclass') %}{{ gc.landclass }}{% else %}—{% endif %} {{ subject_summary | trim or '—' }} {{ event.adapter }}
{# Real offset paginator (v0.7.3). Each link carries offset + the filter query_string (which excludes cursor/offset); limit persists via query_string. #} {# base_path passed into the macro (macros don't see render-context vars). #} {% macro page_link(base, off, label, cls) %} {% set qs = "offset=" ~ off ~ ("&" ~ query_string if query_string else "") %} {{ label }} {% endmacro %} {% else %}

No events match the filters.

{% endif %} {% if oob_pills %} {# Out-of-band update of the page-level active-pills bar on each HTMX swap. #}
{% include "_active_pills.html" %}
{% endif %}