{% import 'partials/avatar.html.twig' as avatar %}<nav class="navbar fixed-top navbar-expand-lg bg-dark-subtle double-border-bottom"> <div class="container"> <a class="navbar-brand" href="{{ path('app_home') }}"> <img src="{{ asset('images/logo.png') }}" alt="Logo HaloGari" class="img-fluid" style="max-width: 120px; height:auto;"> </a> <ul class="navbar-nav ms-auto mb-2 mb-lg-0"> <li class="nav-item align-self-center d-none d-lg-block"> <div class="d-flex gap-2 align-items-center"> <button class="installAppBtn px-1 btn btn-orange d-none nav-link" title="Installer HaloGari"> <i class="bi bi-download"></i> Installer HaloGari </button> <button class="btnEnableNotifications nav-link btn btn-vert d-none px-1"> <i class="bi bi-bell-fill"></i> Activer les notifications </button> </div> </li> <li class="nav-item align-self-center d-none d-lg-block"> <a class="btn nav-link" href="{{ path('app_chercher') }}" title="Chercher un trajet"> <i class="text-vert bi bi-search"></i> Chercher un trajet </a> </li> <li class="nav-item align-self-center d-none d-lg-block"> <a class="btn nav-link" href="{{ path('app_publier') }}"> <i class="bi bi-plus-circle"></i> Publier un trajet </a> </li> {% if app.user %} <li class="nav-item align-self-center d-none d-lg-block position-relative mx-4"> <a class="nav-link position-relative" href="{{ path('app_message') }}" title="Messages"> <i class="bi bi-envelope-fill fs-5"></i> <span class="message-notif position-absolute start-100 translate-middle badge rounded-circle bg-danger" style="display: none; top: 20%;"> 0 </span> </a> </li> <li class="nav-item dropdown align-self-center d-none d-lg-block position-relative me-3"> <a class="nav-link dropdown-toggle no-caret position-relative" href="#" id="notifDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> <i class="bi bi-bell-fill fs-5"></i> <span class="notification-badge position-absolute start-100 translate-middle badge rounded-circle bg-danger" style="display: none; top: 20%;"> 0 </span> </a> <ul class="dropdown-menu dropdown-menu-end shadow-sm p-2" id="notifDropdownMenu" aria-labelledby="notifDropdown" style="min-width: 300px;"> {% include 'partials/_notifications_list.html.twig' with { notifications: app.user.notifications|filter(notif => not notif.lu) } %} </ul> </li> {% endif %} <li class="nav-item d-none d-lg-block align-items-center"> {% if app.user is null %} <a class="btn nav-link" href="#" data-bs-toggle="modal" data-bs-target="#modalConnexion" title="Se connecter"> <i class="bi bi-box-arrow-in-right"></i> Se connecter </a> {% else %} <a class="btn dropdown-toggle text-vert py-0" href="#" role="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight"> {{ avatar.formatSimple(app.user, 40) }} </a> {% endif %} </li> </ul> {# Mobile buttons #} {% if app.user %} <div class="position-relative d-lg-none me-4 d-inline-block"> <a class="nav-link" href="{{ path('app_message') }}" title="Messages"> <i class="bi bi-envelope-fill fs-5"></i> </a> <span class="message-notif position-absolute top-0 start-100 translate-middle badge rounded-circle bg-danger" style="display: none;"> 0 </span> </div> <div class="position-relative d-lg-none me-3 d-inline-block"> <a class="nav-link" href="{{ path('app_notifications') }}" title="Notifications"> <i class="bi bi-bell-fill fs-5"></i> </a> <span class="notification-badge position-absolute top-0 start-100 translate-middle badge rounded-circle bg-danger" style="display: none;"> 0 </span> </div> {% endif %} <a class="btn text-vert d-lg-none py-0 {% if app.user is not null %}dropdown-toggle{% endif %}" href="#" role="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight"> {% if app.user is null %} <i class="bi bi-list fs-3"></i> {% else %} {{ avatar.formatSimple(app.user, 40) }} {% endif %} </a> </div></nav><div class="offcanvas offcanvas-end bg-dark-subtle" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel"> {% if app.user is null %} <div class="offcanvas-header"> <div id="offcanvasRightLabel"> <p><img src="{{ asset('images/logo.png') }}" alt="Logo HaloGari" class="img-fluid" style="max-width: 120px; height:auto;"></p> </div> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <div class="list-group list-group-flush"> <a href="{{ path('app_chercher') }}" class="list-group-item list-group-item-action bg-dark-subtle" title="Chercher un trajet"> <i class="text-vert bi bi-search"></i> Chercher un trajet </a> <a href="{{ path('app_publier') }}" class="list-group-item list-group-item-action bg-dark-subtle" title="Publier un trajet"> <i class="bi bi-plus-circle"></i> Publier un trajet </a> <a class="list-group-item list-group-item-action bg-dark-subtle" href="#" data-bs-toggle="modal" data-bs-target="#modalConnexion" title="Se connecter"> <i class="bi bi-box-arrow-in-right"></i> Se connecter </a> <div class="list-group-item list-group-item-action bg-dark-subtle d-block d-lg-none"> <div class="d-flex justify-content-center gap-2 flex-wrap"> <button class="installAppBtn px-1 btn btn-orange d-none" title="Installer HaloGari"> <i class="bi bi-download"></i> Installer HaloGari </button> <button class="btnEnableNotifications btn btn-vert d-none"> <i class="bi bi-bell-fill"></i> Activer les notifications </button> </div> </div> </div> </div> {% else %} <div class="offcanvas-header"> <div id="offcanvasRightLabel"> <p><img src="{{ asset('images/logo.png') }}" alt="Logo HaloGari" class="img-fluid" style="max-width: 120px; height:auto;"></p> <h5> Bonjour {% if app.user is not null %} {{ app.user.prenom|e }}, {% endif %} </h5> </div> <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button> </div> <div class="offcanvas-body"> <div class="list-group list-group-flush"> <a href="{{ path('app_chercher') }}" class="list-group-item list-group-item-action bg-dark-subtle d-block d-lg-none"> <i class="text-vert bi bi-search"></i> Chercher un trajet </a> <a href="{{ path('app_publier') }}" class="list-group-item list-group-item-action bg-dark-subtle d-block d-lg-none"> <i class="bi bi-plus-circle"></i> Publier un trajet </a> <a href="{{ path('app_profile', { id: app.user.id }) }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-person"></i> Mon profil </a> <a href="{{ path('app_mes_trajets') }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-signpost-2"></i> Mes trajets </a> <a href="{{ path('app_mes_reservations') }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-calendar-check"></i> Mes réservations </a> <a href="{{ path('app_mes_paiements') }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-credit-card"></i> Mes paiements </a> <a href="{{ path('app_documents') }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-file-earmark-text"></i> Mes documents </a> <a href="{{ path('app_parametres') }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-gear"></i> Paramètres </a> <a href="{{ path('app_logout') }}" class="list-group-item list-group-item-action bg-dark-subtle"> <i class="bi bi-box-arrow-right"></i> Déconnexion </a> <div class="list-group-item list-group-item-action bg-dark-subtle text-center d-block d-lg-none"> <div class="d-flex justify-content-center gap-2 flex-wrap"> <button class="installAppBtn px-1 btn btn-orange d-none" title="Installer HaloGari"> <i class="bi bi-download"></i> Installer HaloGari </button> <button class="btnEnableNotifications btn btn-vert"> <i class="bi bi-bell-fill"></i> Activer les notifications </button> </div> </div> </div> </div> {% endif %}</div><main class="flex-grow-1 {% if app.request.attributes.get('_route') == 'app_home' %} pt-0 {% else %} pt-5 {% endif %} pt-md-5">