{% from "_macros.html" import icon %} {# The rebuild's state, swapped into itself. It polls while a rebuild is running and stops when it is not: `hx-trigger` is only emitted in the running branch, so the last frame is a plain fragment with nothing attached to it. A poller that kept going after the work finished would be a request every two seconds, forever, on a page somebody left open. `hx-target="this"` and `hx-swap="outerHTML"` are both spelled out. This lives inside a form on the page, and htmx resolves `hx-target` by walking up the DOM -- an element in there that fetches and names no target aims at whatever an ancestor said, which is the bug the jobs chip had. #}
{% if progress.running %}
{{ icon("clock", "icon--sm") }} Rebuilding: {{ progress.done }} of {{ progress.total }} records ({{ progress.percent }}%), {{ progress.written }} pieces written. You can leave this page — it carries on.
{% elif progress.error %}
{{ icon("warning", "icon--sm") }} {{ progress.error }}
{% elif progress.total %}
{{ icon("check", "icon--sm") }} Finished: {{ progress.done }} records, {{ progress.written }} pieces indexed.
{% endif %}

{% if counts %} Indexed now: {% for kind, count in counts | dictsort %} {{ count }} from {{ kind }}s{{ "," if not loop.last }} {% endfor %}. {% else %} Nothing is indexed yet. {% endif %}

{% if ready %} {% endif %}