{% extends '@!EasyAdmin/layout.html.twig' %}
{% macro render_hidden_fields(name, value) %}
{% if value is iterable %}
{% for subkey, subvalue in value %}
{{ _self.render_hidden_fields(name ~ '[' ~ subkey ~ ']', subvalue) }}
{% endfor %}
{% else %}
<input type="hidden" name="{{ name }}" value="{{ value }}">
{% endif %}
{% endmacro %}
{% block head_metas %}
<link rel="icon" type="image/png" href="{{ asset('assets/img/favicon.png') }}"/>
{% endblock %}
{% block head_stylesheets %}
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700" rel="stylesheet">
{{ encore_entry_script_tags('css/nucleo-icons') }}
{{ encore_entry_script_tags('css/nucleo-svg') }}
{# <script src="https://kit.fontawesome.com/e0f81bff05.js" crossorigin="anonymous"></script> #}
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/js/all.min.js"
integrity="sha512-6sSYJqDreZRZGkJ3b+YfdhB3MzmuP9R7X1QZ6g5aIXhRvR1Y/N/P47jmnkENm7YL3oqsmI6AK+V6AD99uWDnIw=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<!-- CSS Files -->
{{ encore_entry_link_tags('css/admin') }}
{{ encore_entry_link_tags('css/material-dashboard') }}
{% endblock %}
{% block body %}
<body id="{% block body_id %}{% endblock %}"
class="{% block body_class %}{% endblock %} g-sidenav-show bg-gray-300">
{% block javascript_page_layout %}
{{ encore_entry_script_tags('js/must-be-at-top') }}
<script>
document.body.classList.add('ea-content-width-' + (
localStorage.getItem('ea/content/width') || '{{ ea.crud.contentWidth ?? ea.dashboardContentWidth ?? 'normal' }}'
), 'ea-sidebar-width-' + (
localStorage.getItem('ea/sidebar/width') || '{{ ea.crud.sidebarWidth ?? ea.dashboardSidebarWidth ?? 'normal' }}'
));
</script>
{% endblock javascript_page_layout %}
{% block wrapper_wrapper %}
{% set user_menu_avatar %}
{% if null == ea.userMenu.avatarUrl %}
<span class="user-avatar">
<span class="fa-stack">
<i class="user-avatar-icon-background fas fa-square fa-stack-2x"></i>
<i class="user-avatar-icon-foreground {{ ea.user is not null ? 'fa fa-user' : 'fas fa-user-slash' }} fa-stack-1x fa-inverse"></i>
</span>
</span>
{% else %}
<img class="user-avatar" src="{{ ea.userMenu.avatarUrl }}"/>
{% endif %}
{% endset %}
{% set impersonator_permission = constant('Symfony\\Component\\Security\\Core\\Authorization\\Voter\\AuthenticatedVoter::IS_IMPERSONATOR') is defined ? 'IS_IMPERSONATOR' : 'ROLE_PREVIOUS_ADMIN' %}
{% set user_menu_dropdown %}
<div class="dropdown-menu dropdown-menu-end">
<div class="dropdown-item">{{ user_menu_avatar }}</div>
<div class="dropdown-item">
<span class="user-label">{{ 'user.logged_in_as'|trans(domain = 'EasyAdminBundle') }}</span>
<span
class="user-name">{{ ea.user is null ? 'user.anonymous'|trans(domain = 'EasyAdminBundle') : ea.userMenu.name }}</span>
</div>
<hr class="dropdown-divider">
{% block user_menu %}
{% if ea.userMenu.items|length > 0 %}
{% for item in ea.userMenu.items %}
{% if item.isMenuSection and not loop.first %}
<hr class="dropdown-divider">
{% elseif not item.isMenuSection %}
<a href="{{ item.linkUrl }}" class="dropdown-item user-action {{ item.cssClass }}"
target="{{ item.linkTarget }}" rel="{{ item.linkRel }}"
referrerpolicy="origin-when-cross-origin">
{% if item.icon is not empty %}
<i class="fa fa-fw {{ item.icon }}"></i>
{% endif %}
<span>{{ item.label }}</span>
</a>
{% endif %}
{% endfor %}
{% endif %}
{% endblock user_menu %}
</div>
{% endset %}
{% block wrapper %}
<aside
class="sidenav navbar navbar-vertical navbar-expand-xs border-0 border-radius-xl my-3 fixed-start ms-3 bg-gradient-dark bg-white">
{% block sidebar %}
<div class="sidenav-header">
{% block header %}
<a class="navbar-brand m-0" title="{{ ea.dashboardTitle|striptags }}"
href="{{ path('easyadmin_index') }}">
<span class="logo-custom">{{ ea.dashboardTitle|raw }}</span>
</a>
{% endblock header %}
</div>
<hr class="horizontal light mt-2 mb-2">
{% block main_menu_wrapper %}
{{ include(ea.templatePath('main_menu')) }}
{% endblock main_menu_wrapper %}
{% endblock sidebar %}
</aside>
<main class="main-content position-relative max-height-vh-100 h-100 border-radius-lg ">
{% set has_search = ea.crud is not null and ea.crud.isSearchEnabled %}
<nav
class="navbar navbar-main navbar-expand-lg card position-sticky mt-4 top-1 px-0 mx-4 shadow-none border-radius-xl z-index-sticky {{ has_search ? 'ea-search-enabled' : 'ea-search-disabled' }}"
id="navbarBlur" data-scroll="true">
<div class="container-fluid py-1 px-3">
{% block content_top_header %}
<div class="collapse navbar-collapse mt-sm-0 mt-2 me-md-0">
<div class="ms-md-auto d-flex align-items-center col-md-10" id="navbar">
{% if has_search %}
{% block search %}
<form class="form-action-search w-100" method="get">
{% block search_form %}
{% block search_form_filters %}
{{ parent() }}
{% endblock %}
{% for key, value in app.request.query.get('filters', {}) %}
{{ _self.render_hidden_fields('filters[' ~ key ~ ']', value) }}
{% endfor %}
<input type="hidden" name="crudAction" value="index">
<input type="hidden" name="crudControllerFqcn"
value="{{ ea.request.query.get('crudControllerFqcn') }}">
<input type="hidden" name="menuIndex"
value="{{ ea.request.query.get('menuIndex') }}">
<input type="hidden" name="submenuIndex"
value="{{ ea.request.query.get('submenuIndex') }}">
<input type="hidden" name="page" value="1">
<input type="hidden" name="signature"
value="{{ ea_url().unsetAll().setAction('index').setController(ea.request.query.get('crudControllerFqcn')).getSignature() }}">
<div class="form-group">
<div class="input-group input-group-outline">
<label class="content-search-label"
data-value="{{ app.request.get('query') }}"></label>
<input
class="form-control {{ app.request.get('query') is null ? 'is-blank' }}"
type="search" name="query"
value="{{ app.request.get('query') ?? '' }}"
placeholder="{{ 'action.search'|trans(ea.i18n.translationParameters, 'EasyAdminBundle') }}"
spellcheck="false" autocorrect="false"
oninput="this.parentNode.dataset.value=this.value">
</div>
</div>
{% endblock %}
</form>
{% endblock search %}
{% endif %}
</div>
<ul class="navbar-nav justify-content-center col-md-2">
{% block header_custom_menu %}
{% if impersonator_permission is not defined %}
{% set impersonator_permission = constant('Symfony\\Component\\Security\\Core\\Authorization\\Voter\\AuthenticatedVoter::IS_IMPERSONATOR') is defined ? 'IS_IMPERSONATOR' : 'ROLE_PREVIOUS_ADMIN' %}
{% endif %}
{% if user_menu_avatar is not defined %}
{% set user_menu_avatar %}
{% if null == ea.userMenu.avatarUrl %}
<span class="user-avatar">
<span class="fa-stack">
<i class="user-avatar-icon-background fas fa-square fa-stack-2x"></i>
<i class="user-avatar-icon-foreground {{ ea.user is not null ? 'fa fa-user' : 'fas fa-user-slash' }} fa-stack-1x fa-inverse"></i>
</span>
</span>
{% else %}
<img class="user-avatar" src="{{ ea.userMenu.avatarUrl }}"/>
{% endif %}
{% endset %}
{% endif %}
<li class="nav-item dropdown user-menu-wrapper {{ is_granted(impersonator_permission) ? 'user-is-impersonated' }}">
<a class="user-details nav-link p-0 position-relative text-body"
type="button" data-toggle="dropdown" aria-expanded="false">
{{ user_menu_avatar }}
{% if ea.userMenu.isNameDisplayed %}
<span class="user-name">{{ ea.userMenu.name }}</span>
{% endif %}
</a>
{{ user_menu_dropdown }}
</li>
{% endblock header_custom_menu %}
</ul>
</div>
{% endblock content_top_header %}
</div>
</nav>
<div class="container-fluid py-4">
{% block flash_messages %}
{{ include(ea.templatePath('flash_messages')) }}
{% endblock flash_messages %}
{% block content %}
<div class="row content">
<div class="col-12">
<div class="card mb-5">
<div class="card-header d-flex flex-wrap">
{% block content_header_wrapper %}
{% set has_help_message = (ea.crud.helpMessage ?? '') is not empty %}
{% block content_header %}
<h4 class="title align-items-center mt-1">
{% block content_title %}{% endblock %}
{% block content_help %}
{% if has_help_message %}
<span class="content-header-help">
<i class="far fa-question-circle"
data-bs-toggle="tooltip"
title="{{ ea.crud.helpMessage|e('html_attr') }}"></i>
</span>
{% endif %}
{% endblock %}
</h4>
{% block page_actions_wrapper %}
<div class="ms-md-auto pe-md-3 d-flex align-items-end">
{% block page_actions %}{% endblock %}
{% if app.request.query.get('crudControllerFqcn') is not null and app.request.query.get('crudControllerFqcn')|getClass == 'UserSurveyCrudController' %}
<div id="robotMonitor" class="text-right"
data-path="{{ path('admin_getax_monitor_robot') }}">
<button type="button" class="btn btn-light">
<i class="fas fa-spinner"></i>
Chargement...
</button>
</div>
{% endif %}
</div>
{% endblock %}
{% endblock content_header %}
{% endblock content_header_wrapper %}
</div>
{% block main %}{% endblock %}
{% block content_footer_wrapper %}
{% set content_footer = block('content_footer') is defined ? block('content_footer') : '' %}
{% if content_footer is not empty %}
<section class="content-footer">
{{ content_footer }}
</section>
{% endif %}
{% endblock %}
</div>
</div>
</div>
{% endblock content %}
</div>
</main>
{% endblock wrapper %}
{% endblock wrapper_wrapper %}
{% block configured_body_contents %}
{% for htmlContent in ea.assets.bodyContents ?? [] %}
{{ htmlContent|raw }}
{% endfor %}
{% endblock %}
{{ include('admin/modals/modalChartTable.html.twig') }}
{{ include('admin/modals/robotModal.html.twig') }}
{{ include('admin/modals/customModal.html.twig') }}
{{ include('admin/modals/customModal2.html.twig') }}
{{ include('admin/modals/customModalPDF.html.twig') }}
{% block body_javascript %}
{{ parent() }}
{{ encore_entry_script_tags('js/modals') }}
{{ encore_entry_script_tags('js/admin') }}
{{ encore_entry_script_tags('js/popper') }}
{{ encore_entry_script_tags('js/bootstrap') }}
{{ encore_entry_script_tags('js/material-dashboard') }}
{{ encore_entry_script_tags('js/datatables') }}
{{ encore_entry_script_tags('js/onload') }}
{{ encore_entry_script_tags('js/tags') }}
{{ encore_entry_script_tags('js/select-dropdown') }}
{% endblock body_javascript %}
</body>
{% endblock body %}