{#-
 # SPDX-License-Identifier: AGPL-3.0-or-later 
 # SPDX-FileCopyrightText: 2025 Wojtek Porczyk <woju@hackerspace.pl>
-#}

{# cf. https://github.com/prometheus/alertmanager/blob/main/template/default.tmpl -#}

{% macro alert_list_plain(alerts) -%}
{% for alert in alerts %}
- Labels: {% set comma = joiner() -%}
{% for k, v in alert.labels | items -%}
{{ comma() }}{{ k }} = {{ v -}}
{% endfor %}
  Annotations: {% set comma = joiner() -%}
{% for k, v in alert.annotations | items -%}
{{ comma() }}{{ k }} = {{ v -}}
{% endfor %}
  Source: {{ alert.generator_url }}
{%- endfor %}
{%- endmacro -%}

{% macro alert_list_html(alerts) -%}
<ul>
{%- for alert in alerts %}
    <li>Labels: {% set comma = joiner() %}{% for k, v in alert.labels | items %}{{ comma() }}<code>{{ k }} = {{ v }}</code>{% endfor %}
    <br>Annotations: {% set comma = joiner() %}{% for k, v in alert.annotations | items %}{{ comma() }}<code>{{ k }} = {{ v }}</code>{% endfor %}
    <br>Source: <a href="{{ alert.generator_url }}">{{ alert.generator_url }}</a></li>
{% endfor -%}
</ul>
{%- endmacro -%}

{% macro alert_list(alerts) %}
    {%- if HTML %}
        {{- alert_list_html(alerts) }}
    {%- else %}
        {{- alert_list_plain(alerts) }}
    {%- endif %}
{%- endmacro -%}

{% block header %}
{%- if HTML %}<font color="{% if data.status == 'firing' %}red{% else %}green{% endif %}">{% endif %}[{{ data.status | upper }}
    {%- if data.status == 'firing' -%}
        :{{ data.alerts | select('firing') | length }}
    {%- endif -%}
]{% if HTML %}</font>{% endif %}{% endblock %}{% if HTML %}<hr>{% endif %}
{%- if data.alerts | select('firing') | length > 0 %}

{% if HTML %}<strong>{% endif %}Alerts FIRING:{% if HTML %}</strong>
{% endif %}
{{- alert_list(data.alerts | select('firing')) }}
{%- endif %}
{%- if data.alerts | reject('firing') | length > 0 %}

{% if HTML %}<strong>{% endif %}Alerts resolved:{% if HTML %}</strong>
{% endif %}
{{- alert_list(data.alerts | select('resolved')) }}
{%- endif %}
{%- if HTML and get_alert is defined %}<hr>{% endif %}
{%- block footer %}{% endblock %}

{#- vim: set ft=jinja : #}
