You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

254 lines
13KB

  1. {# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #}
  2. {% trans_default_domain ea.i18n.translationDomain %}
  3. <!DOCTYPE html>
  4. <html lang="{{ ea.i18n.htmlLocale }}" dir="{{ ea.i18n.textDirection }}">
  5. <head>
  6. {% block head_metas %}
  7. <meta charset="utf-8">
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  9. <meta name="robots"
  10. content="noindex, nofollow, noarchive, nosnippet, noodp, noimageindex, notranslate, nocache"/>
  11. <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  12. <meta name="generator" content="EasyAdmin"/>
  13. {% endblock head_metas %}
  14. <title>{% block page_title %}{{ block('content_title')|striptags|raw }}{% endblock %}</title>
  15. {# {% block head_stylesheets %}
  16. <link rel="stylesheet" href="{{ asset('bundles/easyadmin/app.css') }}">
  17. {% endblock %} #}
  18. {% block configured_stylesheets %}
  19. {% for css_asset in ea.assets.cssFiles ?? [] %}
  20. <link rel="stylesheet" href="{{ asset(css_asset) }}">
  21. {% endfor %}
  22. {% for webpack_encore_entry in ea.assets.webpackEncoreEntries ?? [] %}
  23. {{ ea_call_function_if_exists('encore_entry_link_tags', webpack_encore_entry) }}
  24. {% endfor %}
  25. {% endblock %}
  26. {% block head_favicon %}
  27. <link rel="shortcut icon" href="{{ asset(ea.dashboardFaviconPath) }}">
  28. {% endblock %}
  29. {# {% block head_javascript %}
  30. <script src="{{ asset('bundles/easyadmin/app.js') }}"></script>
  31. {% endblock head_javascript %} #}
  32. {# {% if 'rtl' == ea.i18n.textDirection %}
  33. <link rel="stylesheet" href="{{ asset('bundles/easyadmin/app.rtl.css') }}">
  34. <link rel="stylesheet" href="{{ asset('bundles/easyadmin/app-custom-rtl.css') }}">
  35. {% endif %} #}
  36. {% block configured_head_contents %}
  37. {% for htmlContent in ea.assets.headContents ?? [] %}
  38. {{ htmlContent|raw }}
  39. {% endfor %}
  40. {% endblock %}
  41. </head>
  42. {% block body %}
  43. <body id="{% block body_id %}{% endblock %}" class="antialiased {% block body_class %}{% endblock %}">
  44. {% block javascript_page_layout %}
  45. <script>
  46. document.body.classList.add(
  47. 'ea-content-width-' + (localStorage.getItem('ea/content/width') || '{{ ea.crud.contentWidth ?? ea.dashboardContentWidth ?? 'normal' }}'),
  48. 'ea-sidebar-width-' + (localStorage.getItem('ea/sidebar/width') || '{{ ea.crud.sidebarWidth ?? ea.dashboardSidebarWidth ?? 'normal' }}')
  49. );
  50. </script>
  51. {% endblock javascript_page_layout %}
  52. {% block wrapper_wrapper %}
  53. {% block flash_messages %}
  54. {{ include(ea.templatePath('flash_messages')) }}
  55. {% endblock flash_messages %}
  56. <div class="wrapper">
  57. {% block wrapper %}
  58. {# <header class="main-header">
  59. {% block header %}
  60. <nav class="navbar" role="navigation">
  61. {% block header_navbar %}
  62. <button id="navigation-toggler" type="button" aria-label="Toggle navigation">
  63. <i class="fa fa-fw fa-bars"></i>
  64. </button>
  65. {% endblock header_navbar %}
  66. </nav>
  67. </header> #}
  68. <aside class="navbar navbar-vertical navbar-expand-lg navbar-dark">
  69. <div class="container-fluid">
  70. {% block sidebar %}
  71. {% block header_logo %}
  72. <h1 class="navbar-brand navbar-brand-autodark">
  73. <a class="{{ ea.dashboardTitle|length > 14 ? 'logo-long' }}"
  74. title="{{ ea.dashboardTitle|striptags }}"
  75. href="{{ path(ea.dashboardRouteName) }}">
  76. {{ ea.dashboardTitle|raw }}
  77. </a>
  78. </h1>
  79. {% endblock header_logo %}
  80. <section class="sidebar">
  81. {% block main_menu_wrapper %}
  82. {{ include(ea.templatePath('main_menu')) }}
  83. {% endblock main_menu_wrapper %}
  84. </section>
  85. {% endblock sidebar %}
  86. </div>
  87. </aside>
  88. <div class="page-wrapper">
  89. <div class="sticky-top">
  90. <header class="navbar navbar-expand-md navbar-light sticky-top d-print-none">
  91. <div class="container-xl">
  92. <button class="navbar-toggler" type="button" data-bs-toggle="collapse"
  93. data-bs-target="#navbar-menu">
  94. <span class="navbar-toggler-icon"></span>
  95. </button>
  96. <span class="push-menu">
  97. <i class="ti ti-antenna-bars-1"></i>
  98. </span>
  99. <div class="navbar-nav flex-row order-md-last">
  100. <div class="nav-item d-none d-md-flex me-3">
  101. <div class="btn-list">
  102. {#<a href="{{ path(homepage_route()) }}" class="btn btn-outline-white" target="_blank" rel="noreferrer">
  103. Afficher le site
  104. </a>#}
  105. </div>
  106. </div>
  107. <div class="nav-item dropdown">
  108. <a href="#" class="nav-link d-flex lh-1 text-reset p-0"
  109. data-bs-toggle="dropdown"
  110. aria-label="Open user menu">
  111. <span class="ti ti-user"></span>
  112. <div class="d-none d-xl-block ps-2">
  113. <div>{{ ea.user is null ? 'user.anonymous'|trans(domain = 'EasyAdminBundle') : ea.userMenu.name }}</div>
  114. {% if is_granted('ROLE_SUPER_ADMIN') %}
  115. <div class="mt-1 small text-muted">Superadmin</div>
  116. {% elseif is_granted('ROLE_ADMIN') %}
  117. <div class="mt-1 small text-muted">Admin</div>
  118. {% else %}
  119. <div class="mt-1 small text-muted">NC</div>
  120. {% endif %}
  121. </div>
  122. </a>
  123. {% block user_menu %}
  124. {% if ea.userMenu.items|length > 0 %}
  125. <div class="dropdown-menu dropdown-menu-end dropdown-menu-arrow">
  126. {% for item in ea.userMenu.items %}
  127. {% if item.isMenuSection %}
  128. <hr class="m-0"/>
  129. {% else %}
  130. <a href="{{ item.linkUrl }}"
  131. class="dropdown-item {{ item.cssClass }}"
  132. target="{{ item.linkTarget }}" rel="{{ item.linkRel }}"
  133. referrerpolicy="origin-when-cross-origin">
  134. {% if item.icon is not empty %}
  135. <i class="ta ta-{{ item.icon }}"></i>
  136. {% endif %}
  137. <span>{{ item.label }}</span>
  138. </a>
  139. {% endif %}
  140. {% endfor %}
  141. </div>
  142. {% endif %}
  143. {% endblock user_menu %}
  144. </div>
  145. </div>
  146. </div>
  147. </header>
  148. </div>
  149. {% block content %}
  150. {% block content_header_wrapper %}
  151. <div class="container-xl">
  152. <div class="page-header d-print-none">
  153. <div class="row align-items-center">
  154. {% set has_help_message = (ea.crud.helpMessage ?? '') is not empty %}
  155. {% block content_header %}
  156. <div class="col">
  157. <h2 class="page-title">
  158. {% block content_title %}{% endblock %}
  159. </h2>
  160. {% block content_help %}
  161. {% if has_help_message %}
  162. <div class="text-muted">
  163. {{ ea.crud.helpMessage|e('html_attr') }}
  164. </div>
  165. {% endif %}
  166. {% endblock %}
  167. </div>
  168. {% block page_actions_wrapper %}
  169. <div class="col-auto ms-auto d-print-none">
  170. <div class="btn-list">
  171. {% block page_actions %}{% endblock %}
  172. </div>
  173. </div>
  174. {% endblock %}
  175. {% endblock %}
  176. </div>
  177. </div>
  178. </div>
  179. {% endblock %}
  180. <div class="page-body">
  181. <div class="container-xl">
  182. {% block main %}{% endblock %}
  183. </div>
  184. </div>
  185. {% block content_footer_wrapper %}
  186. {% set content_footer = block('content_footer') is defined ? block('content_footer') : '' %}
  187. {% if content_footer is not empty %}
  188. <footer class="footer footer-transparent d-print-none">
  189. <div class="container">
  190. <div class="row text-center align-items-center flex-row-reverse">
  191. {{ content_footer }}
  192. </div>
  193. </div>
  194. </footer>
  195. {% endif %}
  196. {% endblock %}
  197. {% endblock %}
  198. </div>
  199. {% endblock wrapper %}
  200. </div>
  201. {% endblock wrapper_wrapper %}
  202. {% block configured_javascripts %}
  203. {% for js_asset in ea.assets.jsFiles ?? [] %}
  204. <script src="{{ asset(js_asset) }}"></script>
  205. {% endfor %}
  206. {% for webpack_encore_entry in ea.assets.webpackEncoreEntries ?? [] %}
  207. {{ ea_call_function_if_exists('encore_entry_script_tags', webpack_encore_entry) }}
  208. {% endfor %}
  209. {% endblock %}
  210. {% block body_javascript %}{% endblock body_javascript %}
  211. {% block configured_body_contents %}
  212. {% for htmlContent in ea.assets.bodyContents ?? [] %}
  213. {{ htmlContent|raw }}
  214. {% endfor %}
  215. {% endblock %}
  216. </body>
  217. {% endblock body %}
  218. </html>