templates/bundles/EasyAdminBundle/layout.html.twig line 89
{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #}{% trans_default_domain ea.i18n.translationDomain %}<!DOCTYPE html><html lang="{{ ea.i18n.htmlLocale }}" dir="{{ ea.i18n.textDirection }}"><head>{% block head_metas %}<meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="robots" content="noindex, nofollow, noarchive, nosnippet, noodp, noimageindex, notranslate, nocache"/>{% if app.request.headers.get("user-agent") matches '/X96Q/' %}<meta content="width=1920, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">{% else %}<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">{% endif %}<meta name="generator" content="EasyAdmin"/><meta name="turbo-cache-control" content="no-cache">{% endblock head_metas %}{% set page_title_block_output %}{% block page_title %}{{ block('content_title') }}{% endblock %}{% endset %}<title>{{ page_title_block_output|striptags|raw }}</title>{% block head_stylesheets %}<linkrel="stylesheet" href="{{ asset('app.css', ea.assets.defaultAssetPackageName) }}">{# {{ encore_entry_link_tags('app') }} #}{% if 'rtl' == ea.i18n.textDirection %}<link rel="stylesheet" href="{{ asset('app.rtl.css', ea.assets.defaultAssetPackageName) }}">{% endif %}{% if is_granted("ROLE_CUSTOMER") %}<link rel="stylesheet" href="{{ asset('themes/'~ settings.get.assetFolderName|lower ~ '/admin/admin-customer.css') }}">{% else %}<link rel="stylesheet" href="{{ asset('themes/'~ settings.get.assetFolderName|lower ~ '/admin/admin.css') }}">{% endif %}{% if 'rtl' == ea.i18n.textDirection %}<link rel="stylesheet" href="{{ asset('themes/'~ settings.get.assetFolderName|lower ~ '/admin/admin.rtl.css') }}">{% endif %}{% endblock %}{# {% block configured_stylesheets %}{{ include('@EasyAdmin/includes/_css_assets.html.twig', { assets: ea.assets.cssAssets ?? [] }, with_context = false) }}{{ include('@EasyAdmin/includes/_encore_link_tags.html.twig', { assets: ea.assets.webpackEncoreAssets ?? [] }, with_context = false) }}{% endblock %} #}{% block head_favicon %}<link rel="shortcut icon" href="{{ asset(ea.dashboardFaviconPath) }}">{% endblock %}{% block head_javascript %}{# <script src="{{ asset('app.js', ea.assets.defaultAssetPackageName) }}"></script> #}{{ encore_entry_script_tags('app') }}{% endblock head_javascript %}{# {% block configured_javascripts %}{{ include('@EasyAdmin/includes/_js_assets.html.twig', { assets: ea.assets.jsAssets ?? [] }, with_context = false) }}{{ include('@EasyAdmin/includes/_encore_script_tags.html.twig', { assets: ea.assets.webpackEncoreAssets ?? [] }, with_context = false) }}{% endblock %} #}{% block configured_head_contents %}{% for htmlContent in ea.assets.headContents ?? [] %}{{ htmlContent|raw }}{% endfor %}{% endblock %}</head>{% block body %}<body{% block body_attr %} {% endblock %} id="{% block body_id %}{% endblock %}" class="ea {% block body_class %}{% endblock %}" data-ea-content-width="{{ ea.crud.contentWidth ?? ea.dashboardContentWidth ?? 'normal' }}" data-ea-sidebar-width="{{ ea.crud.sidebarWidth ?? ea.dashboardSidebarWidth ?? 'normal' }}" data-ea-dark-scheme-is-enabled="{{ ea.dashboardHasDarkModeEnabled ? 'true' : 'false' }}">{# {% block javascript_page_layout %}<script src="{{ asset('page-layout.js', ea.assets.defaultAssetPackageName) }}"></script>{% endblock javascript_page_layout %}{% block javascript_page_color_scheme %}<script src="{{ asset('page-color-scheme.js', ea.assets.defaultAssetPackageName) }}"></script>{% endblock javascript_page_color_scheme %} #}{% block wrapper_wrapper %}{% block flash_messages %}{{ include(ea.templatePath('flash_messages')) }}{% endblock flash_messages %}{% 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 %}<ul class="dropdown-menu dropdown-menu-end"><li class="dropdown-user-details"><div>{{ user_menu_avatar }}</div><div><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></li>{% block user_menu %}{% if ea.userMenu.items|length > 0 %}<li><hr class="dropdown-divider"></li>{% for item in ea.userMenu.items %}<li>{% 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 %}{{ item.label|trans }}</a>{% endif %}</li>{% endfor %}{% endif %}{% endblock user_menu %}</ul>{% endset %}{% set settings_dropdown %}{% if ea.dashboardLocales or ea.dashboardHasDarkModeEnabled %}<div class="dropdown dropdown-settings"><a class="dropdown-settings-button" type="button" data-bs-toggle="dropdown" data-bs-offset="0,5" aria-expanded="false"><i class="fas fa-gear"></i></a><ul class="dropdown-menu dropdown-menu-end">{% if ea.dashboardLocales %}<li class="dropdown-header dropdown-locales-label">{{ 'settings.locale'|trans(domain = 'EasyAdminBundle') }}</li>{% for localeDto in ea.dashboardLocales %}<li><a data-turbo="false" href="{{ ea_url().set('_locale', localeDto.locale) }}" class="dropdown-item{% if app.request.locale == localeDto.locale %} active{% endif %}">{% if localeDto.icon %}<i class="{{ localeDto.icon }}"></i>{% endif %}{{ localeDto.name }}</a></li>{% endfor %}{% endif %}{% if ea.dashboardHasDarkModeEnabled %}{% if ea.dashboardLocales %}<div class="dropdown-divider"></div>{% endif %}<li class="dropdown-header dropdown-appearance-label">{{ 'settings.appearance.label'|trans(domain = 'EasyAdminBundle') }}</li><li><a href="#" class="dropdown-item dropdown-appearance-item" data-ea-color-scheme="light"><i class="far fa-sun fa-fw"></i>{{ 'settings.appearance.light'|trans(domain = 'EasyAdminBundle') }}</a></li><li><a href="#" class="dropdown-item dropdown-appearance-item" data-ea-color-scheme="dark"><i class="far fa-moon fa-fw"></i>{{ 'settings.appearance.dark'|trans(domain = 'EasyAdminBundle') }}</a></li><li><a href="#" class="dropdown-item dropdown-appearance-item active" data-ea-color-scheme="auto"><i class="fas fa-desktop fa-fw"></i>{{ 'settings.appearance.auto'|trans(domain = 'EasyAdminBundle') }}</a></li>{% endif %}</ul></div>{% endif %}{% endset %}<div class="wrapper">{% block wrapper %}<div class="responsive-header">{% block responsive_header %}<button id="navigation-toggler" type="button" aria-label="Toggle navigation"><i class="fa fa-fw fa-bars"></i></button><div id="responsive-header-logo" class="text-truncate ms-auto">{% block responsive_header_logo %}<a class="responsive-logo" href="{{ path(ea.dashboardRouteName) }}">{{ ea.dashboardTitle|raw }}</a>{% endblock responsive_header_logo %}</div><div class="dropdown user-menu-wrapper {{ is_granted(impersonator_permission) ? 'user-is-impersonated' }} ms-auto"><aclass="user-details" type="button" data-bs-toggle="dropdown" data-bs-offset="0,5" aria-expanded="false">{# to make the site design consistent, always display the user avatar in responsive headerand hide the user name (because there's no space left) regardless of the user config #}{% if ea.userMenu.avatarDisplayed %}{{ user_menu_avatar }}{% else %}<i class="user-avatar fa fa-fw {{ ea.user is not null ? 'fa-user' : 'fa-user-times' }}"></i>{% endif %}</a>{{ user_menu_dropdown }}</div>{{ settings_dropdown }}{% endblock responsive_header %}</div><div class="sidebar-wrapper"><a href="#" id="sidebar-resizer-handler" class="toggle-collapse-menu"><i class="fa-solid fa-bars-staggered"></i></a><aside class="sidebar">{% block sidebar %}<header class="main-header">{% block header %}<nav class="navbar" role="navigation">{% block header_navbar %}<div id="header-logo">{% block header_logo %}<a class="logo" href="{{ path(ea.dashboardRouteName) }}"><span class="logo-custom">{{ ea.dashboardTitle|raw }}</span><span class="logo-compact"><img title="Dashboard" style="max-width: 25px;margin-top: 10px;" src="{{ asset('themes/'~ settings.get.assetFolderName|lower ~ '/admin/images/icon.png') }}"/></span></a>{% endblock header_logo %}</div>{% endblock header_navbar %}</nav>{% endblock header %}</header>{% block main_menu_wrapper %}{{ include(ea.templatePath('main_menu')) }}{% endblock main_menu_wrapper %}{% endblock sidebar %}<div id="sidebar-resizer-handler-old" class="resizer-handler resizer-handler-left"></div></aside></div><section class="main-content">{% set has_search = ea.crud is not null and ea.crud.isSearchEnabled %}<aside class="content-top {{ has_search ? 'ea-search-enabled' : 'ea-search-disabled' }}">{% block content_top_header %}{% block search_wrapper %}<div class="content-search">{% if has_search %}{% block search %}<form class="form-action-search" method="get">{% block search_form %}{% block search_form_filters %}{% for field, fieldValue in ea.search.appliedFilters %}{% if fieldValue is iterable %}{% for key, value in fieldValue %}{# This code re-applies your filters on searches, an iterable check is needed in cases we have more than one object for a filter #}{% if value is iterable %}{% for index, iterValue in value %}{# This sub-level iterable check is needed in cases we have more complex filters like the DateTimeFilter cf. issue #5038 #}{% if iterValue is iterable %}{% for subIndex, subIterValue in iterValue %}<input type="hidden" name="filters[{{ field }}][{{ key }}][{{ index }}][{{ subIndex }}]" value="{{ subIterValue }}">{% endfor %}{% else %}<input type="hidden" name="filters[{{ field }}][{{ key }}][{{ index }}]" value="{{ iterValue }}">{% endif %}{% endfor %}{% else %}<input type="hidden" name="filters[{{ field }}][{{ key }}]" value="{{ value }}">{% endif %}{% endfor %}{% else %}<input type="hidden" name="filters[{{ field }}]" value="{{ fieldValue }}">{% endif %}{% endfor %}{% endblock %}<input type="hidden" name="crudAction" value="index"><input type="hidden" name="crudControllerFqcn" value="{{ ea.request.query.get('crudControllerFqcn') }}"><input type="hidden" name="page" value="1"><div class="form-group"><div class="form-widget"><i class="fas fa-search content-search-icon"></i><label class="content-search-label" data-value="{{ app.request.get('query') }}"><input class="form-control {{ app.request.get('query') is null ? 'is-blank' }}" type="search" name="query" value="{{ app.request.get('query') ?? '' }}" placeholder="{{ t('action.search', ea.i18n.translationParameters, 'EasyAdminBundle')|trans }}" spellcheck="false" autocorrect="off" oninput="this.parentNode.dataset.value=this.value" {% if ea.crud.currentAction == 'index' and ea.crud.autofocusSearch == true %} autofocus="autofocus" {% endif %}></label>{% if app.request.get('query') %}<a href="{{ ea_url().unset('query') }}" class="content-search-reset"><i class="fas fa-fw fa-times"></i></a>{% endif %}</div></div>{% endblock %}</form>{% endblock search %}{% endif %}</div>{% endblock search_wrapper %}{% block header_custom_menu_wrapper %}<div class="navbar-custom-menu">{% block header_custom_menu %}<div class="dropdown user-menu-wrapper {{ is_granted(impersonator_permission) ? 'user-is-impersonated' }}"><a class="user-details" type="button" data-bs-toggle="dropdown" data-bs-offset="0,5" aria-expanded="false">{{ user_menu_avatar }}{% if ea.userMenu.isNameDisplayed %}<span class="user-name">{{ ea.userMenu.name }}</span>{% endif %}</a>{{ user_menu_dropdown }}</div>{% endblock header_custom_menu %}</div>{% endblock header_custom_menu_wrapper %}{% block settings_dropdown_wrapper %}{{ settings_dropdown }}{% endblock settings_dropdown_wrapper %}{% endblock content_top_header %}</aside><div class="content-wrapper">{% block content %}<article class="content">{% block content_header_wrapper %}{# BySamir to be continued<div class="alert alert-info alert-dismissible fade show mt-2" role="alert"><strong>Good news !</strong>You are ready to go !<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div> #}{% set has_help_message = (ea.crud.helpMessage ?? '') is not empty %}<section class="content-header">{% block content_header %}<div class="content-header-title"><h1 class="title">{% block content_title %}{% endblock %}{% block content_help %}{% if has_help_message %}<a tabindex="0" class="content-header-help" data-bs-toggle="popover" data-bs-custom-class="ea-content-help-popover" data-bs-animation="true" data-bs-html="true" data-bs-placement="bottom" data-bs-trigger="focus" data-bs-content="{{ ea.crud.helpMessage|trans|e('html_attr') }}"><i class="far fa-question-circle"></i></a>{% endif %}{% endblock %}</h1></div>{% block page_actions_wrapper %}<div class="page-actions">{% block page_actions %}{% endblock %}</div>{% endblock %}{% endblock content_header %}</section>{% endblock content_header_wrapper %}<section id="main" class="content-body">{% block main %}{% endblock %}</section>{% 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 %}</article>{% endblock content %}<div id="content-resizer-handler" class="resizer-handler resizer-handler-right"></div></div></section>{% endblock wrapper %}</div>{% endblock wrapper_wrapper %}{% block body_javascript %}{# <script>var notificationSound = new Audio('/ilave/sounds/notification_sound.mp3');document.addEventListener("turbo:load", function () {const socket = new WebSocket('wss://{{settings.get.absoluteUrl}}:3000');socket.addEventListener('open', () => {console.log('Connected to WebSocket server');});socket.addEventListener('message', event => {const data = JSON.parse(event.data);console.log("Hole Data :",data);if (data.type === 'notification') {console.log('Received notification:', data.message);notificationSound.loop = true;notificationSound.play();if (data.message.entity == "Order") {notificationSound.loop = true;notificationSound.play();const flashMessages = document.getElementById('flash-messages');/*$("#flash-messages").append('<div class="alert alert-success alert-dismissible fade show" role="alert"><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>Nouvelle commande a été crée</div>');*/{% set urlOrders = ea_url().setController('App\\IlaveU\\FrontBundle\\Themes\\'~settings.get.assetFolderName~'\\Controller\\ShopAdmin\\Order\\OrderCrudController').setAction('index') %}Turbo.visit("{{ urlOrders|escape('js') }}");}}// Handle the notification as needed});});document.addEventListener("turbo:click", function () {notificationSound.pause();notificationSound.currentTime = 0;});</script> #}<script>document.addEventListener("turbo:load", function () {$(".main-content").click(function(){if($("body").hasClass("ea-mobile-sidebar-visible")){$("body").removeClass("ea-mobile-sidebar-visible");}});function wrapNumbers(node) {if (node.nodeType === 3) { // Node.TEXT_NODEvar wrappedHtml = node.nodeValue.replace(/(\d+)/g, '<span class="numbers">$1</span>');var fragment = document.createRange().createContextualFragment(wrappedHtml);node.parentNode.replaceChild(fragment, node);} else if (node.nodeType === 1 && node.nodeName != "SCRIPT" && node.nodeName != "STYLE" && node.nodeName != "INPUT" && node.nodeName != "TEXTAREA") { // Node.ELEMENT_NODE, but not script or styleArray.from(node.childNodes).forEach(wrapNumbers);}}//wrapNumbers(document.body);$(document).ready(function () {$("body").on("click",".toggle-collapse-menu",function (e) {//e.preventDefault();$("#sidebar-resizer-handler").trigger("click");});});});</script>{% endblock body_javascript %}{% block configured_body_contents %}{% for htmlContent in ea.assets.bodyContents ?? [] %}{{ htmlContent|raw }}{% endfor %}{% endblock %}</body>{% endblock body %}</html>