{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #} 
{# @var entities \EasyCorp\Bundle\EasyAdminBundle\Collection\EntityDtoCollection #} 
{# @var paginator \EasyCorp\Bundle\EasyAdminBundle\Orm\EntityPaginator #} 
{% extends ea.templatePath('layout') %} 
{% trans_default_domain ea.i18n.translationDomain %} 
 
{% block body_id entities|length > 0 ? 'ea-index-' ~ entities|first.name : '' %} 
{% block body_class 'ea-index' ~ (entities|length > 0 ? ' ea-index-' ~ entities|first.name : '') %} 
 
{% block content_title %} 
    {%- apply spaceless -%} 
        {% set custom_page_title = ea.crud.customPageTitle('index') %} 
        {{ custom_page_title is null 
            ? (ea.crud.defaultPageTitle('index')|trans(ea.i18n.translationParameters, 'EasyAdminBundle'))|raw 
            : (custom_page_title|trans(ea.i18n.translationParameters))|raw }} 
    {%- endapply -%} 
{% endblock %} 
 
{% set has_batch_actions = batch_actions|length > 0 %} 
{% block page_actions %} 
    {% if filters|length > 0 %} 
        <div class="datagrid-filters"> 
            {% block filters %} 
                {% set applied_filters = ea.request.query.all['filters']|default([])|keys %} 
                <div class="btn-group action-filters"> 
                    <a href="#" data-href="{{ ea_url().setAction('renderFilters').includeReferrer() }}" class="btn btn-secondary btn-labeled btn-labeled-right action-filters-button disabled {{ applied_filters ? 'action-filters-applied' }}" data-bs-toggle="modal" data-bs-target="#modal-filters"> 
                        <i class="fa fa-filter fa-fw"></i> {{ 'filter.title'|trans(ea.i18n.translationParameters, 'EasyAdminBundle') }}{% if applied_filters %} <span class="text-primary">({{ applied_filters|length }})</span>{% endif %} 
                    </a> 
                    {% if applied_filters %} 
                        <a href="{{ ea_url().unset('filters') }}" class="btn btn-secondary action-filters-reset"> 
                            <i class="fa fa-close"></i> 
                        </a> 
                    {% endif %} 
                </div> 
            {% endblock filters %} 
        </div> 
    {% endif %} 
 
    {% block global_actions %} 
        <div class="global-actions"> 
            {% for action in global_actions %} 
                {{ include(action.templatePath, { action: action }, with_context = false) }} 
            {% endfor %} 
        </div> 
    {% endblock global_actions %} 
    {% block batch_actions %} 
        {% if has_batch_actions %} 
            <div class="batch-actions" style="display: none"> 
                {% for action in batch_actions %} 
                    {{ include(action.templatePath, { action: action }, with_context = false) }} 
                {% endfor %} 
            </div> 
        {% endif %} 
    {% endblock %} 
{% endblock page_actions %} 
 
{% block main %} 
    {# sort can be multiple; let's consider the sorting field the first one #} 
    {% set sort_field_name = app.request.get('sort')|keys|first %} 
    {% set sort_order = app.request.get('sort')|first %} 
    {% set some_results_are_hidden = false %} 
    {% set has_footer = entities|length != 0 %} 
    {% set has_search = ea.crud.isSearchEnabled %} 
    {% set has_filters = filters|length > 0 %} 
    {% set num_results = entities|length %} 
 
    <table class="table datagrid {{ entities is empty ? 'datagrid-empty' }}"> 
        {% if num_results > 0 %} 
            <thead> 
            {% block table_head %} 
                <tr> 
                    {% if has_batch_actions %} 
                        <th> 
                            <div class="form-check"> 
                                <span><input type="checkbox" class="form-check-input form-batch-checkbox-all"></span> 
                            </div> 
                        </th> 
                    {% endif %} 
 
                    {% set ea_sort_asc = constant('EasyCorp\\Bundle\\EasyAdminBundle\\Config\\Option\\SortOrder::ASC') %} 
                    {% set ea_sort_desc = constant('EasyCorp\\Bundle\\EasyAdminBundle\\Config\\Option\\SortOrder::DESC') %} 
                    {% for field in entities|first.fields ?? [] %} 
                        {% set is_sorting_field = ea.search.isSortingField(field.property) %} 
                        {% set next_sort_direction = is_sorting_field ? (ea.search.sortDirection(field.property) == ea_sort_desc ? ea_sort_asc : ea_sort_desc) : ea_sort_desc %} 
                        {% set column_icon = is_sorting_field ? (next_sort_direction == ea_sort_desc ? 'fa-arrow-up' : 'fa-arrow-down') : 'fa-sort' %} 
 
                        <th class="{{ is_sorting_field ? 'sorted' }} {{ field.isVirtual ? 'field-virtual' }} header-for-{{ field.cssClass|split(' ')|filter(class => class starts with 'field-')|join('') }} text-{{ field.textAlign }}" dir="{{ ea.i18n.textDirection }}"> 
                            {% if field.isSortable %} 
                                <a href="{{ ea_url({ page: 1, sort: { (field.property): next_sort_direction } }).includeReferrer() }}"> 
                                    {{ field.label|raw }} <i class="fa fa-fw {{ column_icon }}"></i> 
                                </a> 
                            {% else %} 
                                <span>{{ field.label|raw }}</span> 
                            {% endif %} 
                        </th> 
                    {% endfor %} 
 
                    <th {% if ea.crud.showEntityActionsAsDropdown %}width="10px"{% endif %} dir="{{ ea.i18n.textDirection }}"> 
                        <span class="sr-only">{{ 'action.entity_actions'|trans(ea.i18n.translationParameters, 'EasyAdminBundle') }}</span> 
                    </th> 
                </tr> 
            {% endblock table_head %} 
            </thead> 
        {% endif %} 
 
        <tbody> 
        {% block table_body %} 
            {% for entity in entities %} 
                {% if not entity.isAccessible %} 
                    {% set some_results_are_hidden = true %} 
                {% else %} 
                    <tr data-id="{{ entity.primaryKeyValueAsString }}"> 
                        {% if has_batch_actions %} 
                            <td class="batch-actions-selector"> 
                                <div class="form-check"> 
                                    <input type="checkbox" class="form-check-input form-batch-checkbox" value="{{ entity.primaryKeyValue }}"> 
                                </div> 
                            </td> 
                        {% endif %} 
 
                        {% for field in entity.fields %} 
                            <td data-label="{{ field.label|e('html_attr') }}" class="{{ field.property == sort_field_name ? 'sorted' }} text-{{ field.textAlign }} {{ field.cssClass }}" dir="{{ ea.i18n.textDirection }}"> 
                                {{ include(field.templatePath, { field: field, entity: entity }, with_context = false) }} 
                            </td> 
                        {% endfor %} 
 
                        {% block entity_actions %} 
                            <td class="actions {{ ea.crud.showEntityActionsAsDropdown ? 'actions-as-dropdown' }}"> 
                                {% if entity.actions.count > 0 %} 
                                    {% if ea.crud.showEntityActionsAsDropdown %} 
                                        <div class="dropdown dropdown-actions"> 
                                            <a class="dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
                                                {# don't use FontAwesome 'fa-ellipsis-h' icon here because it doesn't look good #} 
                                                {# this icon is 'dots-horizontal' icon from https://heroicons.com/ #} 
                                                <svg xmlns="http://www.w3.org/2000/svg" height="21" width="21" fill="none" viewBox="0 0 24 24" stroke="currentColor"> 
                                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h.01M12 12h.01M19 12h.01M6 12a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0zm7 0a1 1 0 11-2 0 1 1 0 012 0z" /> 
                                                </svg> 
                                            </a> 
 
                                            <div class="dropdown-menu dropdown-menu-right"> 
                                                {% for action in entity.actions %} 
                                                    {{ include(action.templatePath, { action: action, entity: entity, isIncludedInDropdown: ea.crud.showEntityActionsAsDropdown }, with_context = false) }} 
                                                {% endfor %} 
                                            </div> 
                                        </div> 
                                    {% else %} 
                                        {% for action in entity.actions %} 
                                            {{ include(action.templatePath, { action: action, entity: entity, isIncludedInDropdown: ea.crud.showEntityActionsAsDropdown }, with_context = false) }} 
                                        {% endfor %} 
                                    {% endif %} 
                                {% endif %} 
                            </td> 
                        {% endblock entity_actions %} 
                    </tr> 
 
                {% endif %} 
            {% else %} 
                {% block table_body_empty %} 
                    {% for i in 1..14 %} 
                        <tr class="empty-row"> 
                            <td><span></span></td> 
                            <td><span></span></td> 
                            <td><span></span></td> 
                            <td><span></span></td> 
                            <td><span></span></td> 
                            <td><span></span></td> 
                        </tr> 
 
                        {% if 3 == loop.index %} 
                            <tr class="no-results"> 
                                <td colspan="100"> 
                                    {{ 'datagrid.no_results'|trans(ea.i18n.translationParameters, 'EasyAdminBundle') }} 
                                </td> 
                            </tr> 
                        {% endif %} 
                    {% endfor %} 
                {% endblock table_body_empty %} 
            {% endfor %} 
 
            {% if some_results_are_hidden %} 
                <tr class="datagrid-row-empty"> 
                    <td class="text-center" colspan="{{ entities|first.fields|length + 1 }}"> 
                        <span class="datagrid-row-empty-message"><i class="fa fa-lock mr-1"></i> {{ 'datagrid.hidden_results'|trans({}, 'EasyAdminBundle') }}</span> 
                    </td> 
                </tr> 
            {% endif %} 
        {% endblock table_body %} 
        </tbody> 
 
        <tfoot> 
        {% block table_footer %} 
        {% endblock table_footer %} 
        </tfoot> 
    </table> 
 
    {% if entities|length > 0 %} 
        <div class="content-panel-footer without-padding without-border"> 
            {% block paginator %} 
                {{ include(ea.templatePath('crud/paginator'), { render_detailed_pagination: not some_results_are_hidden }) }} 
            {% endblock paginator %} 
        </div> 
    {% endif %} 
 
    {% block delete_form %} 
        {{ include('@EasyAdmin/crud/includes/_delete_form.html.twig', with_context = false) }} 
    {% endblock delete_form %} 
 
    {% if has_filters %} 
        {{ include('@EasyAdmin/crud/includes/_filters_modal.html.twig') }} 
    {% endif %} 
 
    {% if has_batch_actions %} 
        {{ include('@EasyAdmin/crud/includes/_batch_action_modal.html.twig', {}, with_context = false) }} 
    {% endif %} 
{% endblock main %}