{% import "macros.html" as macros %} {% extends "root.html" %} {% block head %}
<title>IP Bans - {{ config.name }}</title>
{% endblock %} {% block body %} {{ macros::nav(selected="notifications") }}
<main class="flex flex-col gap-2">
    <div class="card-nest w-full">
        <div class="card small flex items-center gap-2">
            {{ icon "ban" }}
            <span>{{ text "general:link.ip_bans" }}</span>
        </div>

        <div class="card flex flex-col gap-2">
            <!-- prettier-ignore -->
            {% for item in items %}
            <div class="card-nest">
                <a
                    class="card small flex items-center gap-2 flush"
                    href="/api/v1/auth/user/find/{{ item.moderator }}"
                >
                    <!-- prettier-ignore -->
                    {{ components::avatar(username=item.moderator, selector_type="id") }}
                    <span>{{ item.moderator }}</span>
                    <span class="fade date">{{ item.created }}</span>
                </a>

                <div class="card secondary flex flex-col gap-2">
                    <code>{{ item.ip }}</code>
                    <span>{{ item.reason|markdown|safe }}</span>

                    <div class="card w-full flex flex-wrap gap-2">
                        <button
                            onclick="remove_report('{{ item.ip }}')"
                            class="red quaternary"
                        >
                            {{ icon "trash" }}
                            <span>{{ text "general:action.delete" }}</span>
                        </button>
                    </div>
                </div>
            </div>
            {% endfor %}

            <!-- prettier-ignore -->
            {{ components::pagination(page=page, items=items|length) }}
        </div>
    </div>
</main>

<script>
    async function remove_ban(ip) {
        if (
            !(await trigger("atto::confirm", [
                "Are you sure you would like to do this?",
            ]))
        ) {
            return;
        }

        fetch(`/api/v1/bans/${id}`, {
            method: "DELETE",
        })
            .then((res) => res.json())
            .then((res) => {
                trigger("atto::toast", [
                    res.ok ? "success" : "error",
                    res.message,
                ]);
            });
    }
</script>
{% endblock %}