{% if entries %} {% for e in entries %} {% set nf = e.nf %} {% endfor %}
Path Hits Last seen Referrer Suggestion Actions
{{ nf.path }} {{ nf.count }} {{ nf.last_seen.strftime('%Y-%m-%d') }} {% if nf.last_referrer %}{{ nf.last_referrer }} {% else %}(none){% endif %} {% if e.suggestion and e.suggestion.kind == 'redirect' %} → {{ e.suggestion.candidate.url }} {% elif e.suggestion and e.suggestion.kind == 'archived' %} archived: {{ e.suggestion.candidate.title }} {% else %} (none) {% endif %} {# The resolving actions collapse into one dropdown so the row isn't a wall of buttons; the permanent Ignore stays standalone (destructive, one click). Panel items are plain menu rows (no `btn` class) so `.dropdown-panel` styles them. #}
Actions ▾
{# Ignore = permanent: never show this path again. #}
{# Bulk actions. Buttons gather the checked row ids into the hidden form (below) and POST it -- the table can't be wrapped in a
because the per-row action dropdown already contains forms (no nested forms). Wiring lives in the delegated script in notfound_list.html. #}
0 selected
{% else %}

No detected 404s for this site.

{% endif %}