{% extends "administration/base.html" %}

{% load i18n %}
{% load humanize %}
{% load passbook_utils %}
{% load admin_reflection %}

{% block content %}
<section class="pf-c-page__main-section pf-m-light">
    <div class="pf-c-content">
        <h1>
            <i class="fas fa-map-marker"></i>
            {% trans 'Outposts' %}
        </h1>
        <p>{% trans "Outposts are deployments of passbook components to support different environments and protocols, like reverse proxies." %}</p>
    </div>
</section>
<section class="pf-c-page__main-section pf-m-no-padding-mobile">
    <div class="pf-c-card">
        {% if object_list %}
        <div class="pf-c-toolbar">
            <div class="pf-c-toolbar__content">
                {% include 'partials/toolbar_search.html' %}
                <div class="pf-c-toolbar__bulk-select">
                    <a href="{% url 'passbook_admin:outpost-create' %}?back={{ request.get_full_path }}" class="pf-c-button pf-m-primary" type="button">{% trans 'Create' %}</a>
                </div>
                {% include 'partials/pagination.html' %}
            </div>
        </div>
        <table class="pf-c-table pf-m-compact pf-m-grid-xl" role="grid">
            <thead>
                <tr role="row">
                    <th role="columnheader" scope="col">{% trans 'Name' %}</th>
                    <th role="columnheader" scope="col">{% trans 'Providers' %}</th>
                    <th role="columnheader" scope="col">{% trans 'Health' %}</th>
                    <th role="columnheader" scope="col">{% trans 'Version' %}</th>
                    <th role="cell"></th>
                </tr>
            </thead>
            <tbody role="rowgroup">
                {% for outpost in object_list %}
                <tr role="row">
                    <th role="columnheader">
                        <span>{{ outpost.name }}</span>
                    </th>
                    <td role="cell">
                        <span>
                            {{ outpost.providers.all.select_subclasses|join:", " }}
                        </span>
                    </td>
                    {% with states=outpost.state %}
                    {% if states|length > 1 %}
                        <td role="cell">
                            {% for state in states %}
                            <div>
                                {% if state.last_seen %}
                                <i class="fas fa-check pf-m-success"></i> {{ state.last_seen|naturaltime }}
                                {% else %}
                                <i class="fas fa-times pf-m-danger"></i> {% trans 'Unhealthy' %}
                                {% endif %}
                            </div>
                            {% endfor %}
                        </td>
                        <td role="cell">
                            {% for state in states %}
                                <div>
                                    {% if not state.version %}
                                    <i class="fas fa-question-circle"></i>
                                    {% elif state.version_outdated %}
                                    <i class="fas fa-times pf-m-danger"></i> {% blocktrans with is=state.version should=state.version_should %}{{ is }}, should be {{ should }}{% endblocktrans %}
                                    {% else %}
                                    <i class="fas fa-check pf-m-success"></i> {{ state.version }}
                                    {% endif %}
                                </div>
                            {% endfor %}
                        </td>
                    {% else %}
                        <td role="cell">
                            <i class="fas fa-question-circle"></i>
                        </td>
                        <td role="cell">
                            <i class="fas fa-question-circle"></i>
                        </td>
                    {% endif %}
                    {% endwith %}
                    <td>
                        <a class="pf-c-button pf-m-secondary" href="{% url 'passbook_admin:outpost-update' pk=outpost.pk %}?back={{ request.get_full_path }}">{% trans 'Edit' %}</a>
                        <a class="pf-c-button pf-m-danger" href="{% url 'passbook_admin:outpost-delete' pk=outpost.pk %}?back={{ request.get_full_path }}">{% trans 'Delete' %}</a>
                        {% get_htmls outpost as htmls %}
                        {% for html in htmls %}
                        {{ html|safe }}
                        {% endfor %}
                    </td>
                </tr>
                {% endfor %}
            </tbody>
        </table>
        <div class="pf-c-pagination pf-m-bottom">
            {% include 'partials/pagination.html' %}
        </div>
        {% else %}
        <div class="pf-c-toolbar">
            <div class="pf-c-toolbar__content">
                {% include 'partials/toolbar_search.html' %}
            </div>
        </div>
        <div class="pf-c-empty-state">
            <div class="pf-c-empty-state__content">
                <i class="fas fa-map-marker pf-c-empty-state__icon" aria-hidden="true"></i>
                <h1 class="pf-c-title pf-m-lg">
                    {% trans 'No Outposts.' %}
                </h1>
                <div class="pf-c-empty-state__body">
                {% if request.GET.search != "" %}
                    {% trans "Your search query doesn't match any outposts." %}
                {% else %}
                    {% trans 'Currently no outposts exist. Click the button below to create one.' %}
                {% endif %}
                </div>
                <a href="{% url 'passbook_admin:outpost-create' %}?back={{ request.get_full_path }}" class="pf-c-button pf-m-primary" type="button">{% trans 'Create' %}</a>
            </div>
        </div>
        {% endif %}
    </div>
</section>
{% endblock %}