{% extends "administration/base.html" %} {% load i18n %} {% 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="pf-icon pf-icon-integration"></i> {% trans 'Providers' %} </h1> <p>{% trans "Provide support for protocols like SAML and OAuth to assigned applications." %} </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"> <div class="pf-c-dropdown"> <button class="pf-m-primary pf-c-dropdown__toggle" type="button"> <span class="pf-c-dropdown__toggle-text">{% trans 'Create' %}</span> <i class="fas fa-caret-down pf-c-dropdown__toggle-icon" aria-hidden="true"></i> </button> <ul class="pf-c-dropdown__menu" hidden> {% for type, name in types.items %} <li> <a class="pf-c-dropdown__menu-item" href="{% url 'passbook_admin:provider-create' %}?type={{ type }}&back={{ request.get_full_path }}"> {{ name|verbose_name }}<br> <small> {{ name|doc }} </small> </a> </li> {% endfor %} </ul> </div> </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 'Type' %}</th> <th role="cell"></th> </tr> </thead> <tbody role="rowgroup"> {% for provider in object_list %} <tr role="row"> <th role="columnheader"> <div> <div>{{ provider.name }}</div> {% if not provider.application %} <i class="pf-icon pf-icon-warning-triangle"></i> <small>{% trans 'Warning: Provider not assigned to any application.' %}</small> {% else %} <i class="pf-icon pf-icon-ok"></i> <small> {% blocktrans with app=provider.application %} Assigned to application {{ app }}. {% endblocktrans %} </small> {% endif %} </div> </th> <td role="cell"> <span> {{ provider|verbose_name }} </span> </td> <td> <a class="pf-c-button pf-m-secondary" href="{% url 'passbook_admin:provider-update' pk=provider.pk %}?back={{ request.get_full_path }}">{% trans 'Edit' %}</a> <a class="pf-c-button pf-m-danger" href="{% url 'passbook_admin:provider-delete' pk=provider.pk %}?back={{ request.get_full_path }}">{% trans 'Delete' %}</a> {% get_links provider as links %} {% for name, href in links.items %} <a class="pf-c-button pf-m-tertiary" href="{{ href }}?back={{ request.get_full_path }}">{% trans name %}</a> {% endfor %} {% get_htmls provider 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="pf-icon-integration pf-c-empty-state__icon" aria-hidden="true"></i> <h1 class="pf-c-title pf-m-lg"> {% trans 'No Providers.' %} </h1> <div class="pf-c-empty-state__body"> {% if request.GET.search != "" %} {% trans "Your search query doesn't match any providers." %} {% else %} {% trans 'Currently no providers exist. Click the button below to create one.' %} {% endif %} </div> <div class="pf-c-dropdown"> <button class="pf-m-primary pf-c-dropdown__toggle" type="button"> <span class="pf-c-dropdown__toggle-text">{% trans 'Create' %}</span> <i class="fas fa-caret-down pf-c-dropdown__toggle-icon" aria-hidden="true"></i> </button> <ul class="pf-c-dropdown__menu" hidden> {% for type, name in types.items %} <li> <a class="pf-c-dropdown__menu-item" href="{% url 'passbook_admin:provider-create' %}?type={{ type }}&back={{ request.get_full_path }}"> {{ name|verbose_name }}<br> <small> {{ name|doc }} </small> </a> </li> {% endfor %} </ul> </div> </div> </div> {% endif %} </div> </section> {% endblock %}