{% extends "base.html" %} {% block title %}Glean — history{% endblock %} {% macro scan_row(scan) %}
  • {% if scan.cancelled %} {{ scan.started_at[:19] | replace("T", " ") }} UTC cancelled {% else %} {{ scan.started_at[:19] | replace("T", " ") }} UTC {% for tid in scan.tools_run %}{{ tool_names[tid].display_name if tid in tool_names else tid }}{% if not loop.last %}, {% endif %}{% endfor %} {{ scan.findings_count }} finding{{ "s" if scan.findings_count != 1 else "" }} {% if scan.narrated_by %} {{ scan.narrated_by }} {% else %} {% endif %} {% endif %} {% if scan.warnings %}
    {{ scan.warnings | length }} warning{{ "s" if scan.warnings | length != 1 else "" }}
    {% else %} {# Holds the warning column open so the Delete button below lines up with the Delete button of every other row, warned or not. #} {% endif %} {# After the warning column, not before it: the pill's width varies with its own content, so anything left of it shifts between a warned and an unwarned row. Keeping both action controls to its right lets them share one straight edge down the list. #} Re-run
    {% if scan.surface %} {# Last child, spanning every column, so it occupies its own grid row. Inline it competed with six other cells for horizontal space and, on a row that also carried a narration badge, pushed Delete clean off the right edge. #} {% for entity_type, count in scan.surface %}{{ surface_label(entity_type, count) }}{% if not loop.last %} · {% endif %}{% endfor %} {% endif %}
  • {% endmacro %} {% block content %}

    Scan history

    {% if pending %}

    In progress ({{ pending | length }})

    At most {{ max_concurrent_scans }} scan(s) run at once; the rest wait their turn.

    {% endif %} {% if not groups %}

    No scans yet — run one.

    {% else %}

    {% for target, scans in groups %}

    {{ target }} ({{ scans | length }} scan{{ "s" if scans | length != 1 else "" }})

    {% if scans | length > 1 %}
    {{ (scans | length) - 1 }} earlier scan(s) of this target — click to expand
      {% for scan in scans[1:] %}{{ scan_row(scan) }}{% endfor %}
    {% endif %}
    {% endfor %}
    {% endif %} {% endblock %}