{#
  Gemeinsame Auditlog-Zeilendarstellung -- von activity_log.html (Erstladung)
  UND _audit_log_rows.html (AJAX-Nachladen über "Weitere 500 laden")
  importiert, damit beide garantiert dieselbe Darstellung erzeugen und
  action_labels/action_icons/category_of nicht an zwei Stellen gepflegt
  werden müssen.
#}
{% set action_labels = {
  "settings.update": "Einstellung geändert",
  "device.create": "Gerät angelegt",
  "device.edit": "Gerät bearbeitet",
  "device.delete": "Gerät gelöscht",
  "device.activate": "Gerät aktiviert",
  "device.deactivate": "Gerät deaktiviert",
  "switch.create": "Switch angelegt",
  "switch.edit": "Switch bearbeitet",
  "switch.delete": "Switch gelöscht",
  "credential.create": "Zugangsdaten angelegt",
  "credential.edit": "Zugangsdaten bearbeitet",
  "credential.delete": "Zugangsdaten gelöscht",
  "user.create": "Benutzer angelegt",
  "user.edit": "Benutzer bearbeitet",
  "user.delete": "Benutzer gelöscht",
  "user.assign_group": "Gruppe zugewiesen",
  "group.create": "Gruppe angelegt",
  "group.edit": "Gruppe bearbeitet",
  "group.delete": "Gruppe gelöscht",
  "group.assign_admins": "Admin-Zuweisung geändert",
  "profile.update": "Profil aktualisiert",
  "profile.password": "Passwort geändert",
  "check.run_now": "Prüfung manuell gestartet",
  "fileshare.upload": "Datei(en) hochgeladen",
  "fileshare.mkdir": "Ordner angelegt",
  "fileshare.delete": "Datei/Ordner gelöscht",
  "fileshare.rename": "Datei/Ordner umbenannt",
  "fileshare.download": "Als ZIP heruntergeladen",
  "auditlog.archive": "Auditlog archiviert",
  "auditlog.export_delete": "Auditlog-Archiv exportiert",
} %}
{% set action_icons = {
  "delete": '<path d="M3 6h18M8 6V4a2 2 0 012-2h4a2 2 0 012 2v2m3 0l-1 14a2 2 0 01-2 2H7a2 2 0 01-2-2L4 6"/>',
  "create": '<path d="M12 5v14M5 12h14"/>',
  "edit": '<path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 013 3L7 19l-4 1 1-4z"/>',
  "activate": '<path d="M20 6L9 17l-5-5"/>',
  "deactivate": '<circle cx="12" cy="12" r="9"/><path d="M15 9l-6 6M9 9l6 6"/>',
} %}
{% set create_kinds = ("create", "upload", "mkdir") %}

{% macro category_of(kind) %}{% if kind in create_kinds %}create{% elif kind == "delete" %}delete{% else %}edit{% endif %}{% endmacro %}

{% macro audit_row(e) %}
{% set kind = e['action'].split('.')[-1] %}
{% set cat = category_of(kind)|trim %}
<tr data-category="{{ cat }}" data-sort-ts="{{ e['ts'] }}" data-sort-user="{{ e['username']|lower }}"
    data-sort-action="{{ action_labels.get(e['action'], e['action'])|lower }}" data-sort-target="{{ (e['target'] or '')|lower }}">
  <td class="text-dim mono" style="font-size:12.5px;">{{ e['ts'] }}</td>
  <td class="cell-name">{{ e['username'] }}</td>
  <td>
    <span class="pill action-pill action-pill--{{ cat }}">
      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">{{ (action_icons.get(kind) or action_icons['edit'])|safe }}</svg>
      {{ action_labels.get(e['action'], e['action']) }}
    </span>
  </td>
  <td>{{ e['target'] or '—' }}</td>
  <td class="text-dim">{{ e['details'] or '—' }}</td>
</tr>
{% endmacro %}
