templates/_nav.html.twig line 1

Open in your IDE?
  1. <nav class="navbar navbar-expand-lg bg-secondary py-1" id="navbar">
  2.   <div class="container-fluid">
  3.     <a class="navbar-brand text-dark" href="{{ path('home') }}">
  4.       <img 
  5.         src="{{ asset('images/configuration/' ~ config.societeLogoSrc) }}" 
  6.         {% if config.societeLogoAlt %}
  7.           alt="{{ config.societeLogoAlt }}" 
  8.         {% endif %}
  9.         {% if config.societeLogoTitle %}
  10.           title="{{ config.societeLogoTitle }}" 
  11.         {% endif %}
  12.         
  13.         class="img190px">
  14.     </a>
  15.     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  16.       <span class="navbar-toggler-icon"></span>
  17.     </button>
  18.     <div class="collapse navbar-collapse" id="navbarSupportedContent">
  19.         <ul class="navbar-nav me-auto mb-2 mb-lg-0 fs12">
  20.             <li class="nav-item align-self-center">
  21.               <a class="" href="{{ path('home') }}">
  22.                 Accueil
  23.               </a>
  24.             </li>
  25.         </ul>
  26.         <ul class="navbar-nav fs12" style="margin-right:100px" >
  27. {# <form class="d-flex align-self-center" role="search" method="post" action="{{ path('recherche') }}">
  28.     <div class="input-group">
  29.         <input class="form-control me-2" type="search" placeholder="Recherche..." aria-label="Search">
  30.         <button class="btn" type="submit">
  31.             <i class="text-secondary" data-feather="search"></i>
  32.         </button>
  33.     </div>
  34. </form> #}
  35.               <li class="nav-item align-self-center">
  36.                   <a class="nav-link text-dark" href="{{ path('agenda', {'annee' : "now"|date("Y"), 'mois' : "now"|date("m") }) }}">
  37.                       {{ config.agendaTitre }}
  38.                   </a>
  39.               </li>
  40.               {% if rubrique.rubrique35.statut %}
  41.                 <li class="nav-item align-self-center">
  42.                   <a href="{{ path('ssrubriques', {slug: rubrique.rubrique35.rubrique.slug, slug2 : rubrique.rubrique35.slug }) }}"> 
  43.                     {{ rubrique.rubrique35.nom }}
  44.                   </a>
  45.                 </li>
  46.               {% endif %}
  47.               <li class="nav-item align-self-center">
  48.                 <a class="nav-link text-dark" href="{{ path('contact') }}">{{ config.titreContact }}</a>
  49.               </li>
  50.               {% if config.tchapBool %}
  51.                 <li class="nav-item align-self-center">
  52.                   <a class="nav-link text-dark" target="_blank" href="{{ config.tchap }}">{{ config.titreTchap }}</a>
  53.                 </li>
  54.               {% endif %}
  55.               
  56.               {# <li class="nav-item">
  57.                   <a class="nav-link" href="{{ path('agenda', {'year' : "now"|date("Y"), 'month' : "now"|date("m") })}}">
  58.                     <img 
  59.                       src="{{ asset('images/configuration/' ~ config.agendaSrc) }}" 
  60.                       {% if config.agendaTitle %}
  61.                         title="{{ config.agendaTitle }}"
  62.                       {% endif %}
  63.                       {% if config.agendaAlt %}
  64.                         alt="{{ config.agendaAlt }}"
  65.                       {% endif %}
  66.                       class="img40px"
  67.                     >
  68.                   </a>
  69.               </li> #}
  70.               {# <li class="nav-item align-self-center">
  71.                 <a class="" href="{{ path(rubrique.rubrique35.lien) }}">
  72.                   <img 
  73.                     src="{{ asset('images/rubrique/' ~ rubrique.rubrique35.src) }}" 
  74.                     {% if rubrique.rubrique35.alt %}
  75.                         alt="{{ rubrique.rubrique35.alt }}" 
  76.                     {% endif %} 
  77.                     {% if rubrique.rubrique35.title %}
  78.                         title="{{ rubrique.rubrique35.title }}"
  79.                     {% endif %}
  80.                     class="img40px"
  81.                   >
  82.                 </a>
  83.               </li> #}
  84.           {% if app.user %}
  85.               <li class="nav-item dropdown align-self-center">
  86.                 <a class="nav-link dropdown-toggle text-dark" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
  87.                   <img src="{{ asset('images/svg/user.svg') }}" alt="Senior icône avatar">
  88.       
  89.                 </a>
  90.                 {% if is_granted('ROLE_MODO') %}
  91.                   {% if notif.attenteTotale %}<span class="badgeNotification bg-primary">{{notif.attenteTotale}}</span>{% endif %}
  92.                   
  93.                   
  94.                 {% endif %}
  95.                 <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
  96.                     <li><a class="dropdown-item" href="{{ path('app_profil')}}">Profil</a></li>
  97.                     <li><a class="dropdown-item" href="{{ path('app_messagerie')}}">Messagerie
  98.                     
  99.                       {{ getCountMessagerieEnAttente(app.user) }}
  100.                     
  101.                     </a></li>
  102.                     
  103.                     {% if is_granted('ROLE_MODO') %}
  104.                       <li><hr class="dropdown-divider"></li>
  105.                       <li><a class="dropdown-item" href="{{ path('app_admin') }}">Back Office</a></li>
  106.                     {% endif %}
  107.                     
  108.                     <li><hr class="dropdown-divider"></li>
  109.                     <li><a class="dropdown-item" href="{{ path('app_logout')}}">Déconnexion</a></li>
  110.                 </ul>
  111.               </li>
  112.           {% else %}
  113.               <li class="nav-item center-vertical">
  114.                   <a class="nav-link text-dark" href="{{ path('app_register')}}">Inscription</a>
  115.               </li>
  116.               <li class="nav-item center-vertical">
  117.                   <a class="nav-link text-dark" href="{{ path('app_login')}}">Connexion</a>
  118.               </li>
  119.               {# <li class="nav-item">
  120.                 {% include '_connexion_bouton.html.twig' with {'contenu': 'Connexion', 'class': "nav-link text-dark" } %}
  121.               </li> #}
  122.           {% endif %}
  123.             <div class="center-vertical" title="Rechercher">
  124.                 <i class="text-dark"  data-feather="search" data-bs-toggle="modal" data-bs-target="#modalSearch" style="cursor: pointer;"></i>
  125.             </div>
  126.         </ul>
  127.     </div>
  128.   </div>
  129. </nav>
  130. {# <form class="row g-3 justify-content-end p-1 bg-white">
  131.   <div class="col-auto">
  132.     <label for="inputPassword2" class="visually-hidden">Moteur de recherche</label>
  133.     <input type="text" class="form-control" id="inputPassword2" placeholder="Moteur de recherche">
  134.   </div>
  135.    <div class="col-auto">
  136.     <button type="submit" class="btn btn-primary mb-3">Rechercher</button>
  137.   </div> 
  138. </form> #}
  139. <div class="modal fade" id="modalConnexion" tabindex="-1" aria-labelledby="modalLabel" aria-hidden="true">
  140.   <div class="modal-dialog">
  141.     <div class="modal-content rounded">
  142.     <form id="loginForm" method="POST">
  143.       <div class="modal-header">
  144.         <h1 class="modal-title fs-5" id="exampleModalLabel">Connexion</h1>
  145.         <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  146.       </div>
  147.       <div class="modal-body">
  148.         <div id="errorLogin"></div>
  149.         <div class="form-group my-3">
  150.             <label for="inputEmail">Email<span class="text-danger">*</span></label>
  151.             <input type="email" value="" name="email" id="inputEmail" class="form-control" autocomplete="email" required autofocus>
  152.         </div>
  153.         <div class="form-group my-3">
  154.             <label for="inputPassword">Mot de passe<span class="text-danger">*</span></label>
  155.             <input type="password" name="password" id="inputPassword" class="form-control password-field-alone" autocomplete="current-password" required>
  156.             <i class="toggle-password-alone fa fa-fw fa-eye-slash" onclick="passwordAlone()"></i>
  157.         </div>
  158.       </div>
  159.       <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
  160.       <div class="row justify-content-between m-0 text-center my-4">
  161.             <a class="col-md-5" href="{{ path('app_register') }}">Inscrivez-vous ?</a>
  162.             <a class="col-md-5" href="{{ path('app_forgot_password_request') }}">Mot de passe oublié ?</a>
  163.         </div>
  164.       <div class="modal-footer">
  165.         <button type="button" class="btn btn-danger rounded" data-bs-dismiss="modal">Annuler</button>
  166.         <button type="submit" class="btn btn-primary rounded">Connecter</button>
  167.       </div>
  168.     </form>
  169.     </div>
  170.   </div>
  171. </div>
  172. <div class="modal fade" id="modalSearch" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  173.   <div class="modal-dialog">
  174.       <div class="modal-content rounded">
  175.         <form method="post" action="{{ path('recherche') }}">
  176.           <div class="modal-header">
  177.             <h1 class="modal-title fs-5" id="exampleModalLabel">Que souhaitez-vous rechercher ?</h1>
  178.             <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  179.           </div>
  180.           <div class="modal-body">
  181.             <input id="rechercheInput" class="form-control me-2" type="search" name="search" placeholder="Écrivez votre recherche..." aria-label="Search" autocomplete="off">
  182.           </div>
  183.           <div class="modal-footer">
  184.             <button type="button" class="btn btn-danger" data-bs-dismiss="modal">Annuler</button>
  185.             <button type="submit" id="submitButton" class="btn btn-primary" disabled>Rechercher</button>
  186.           </div>
  187.         </form>
  188.     </div>
  189.   </div>
  190. </div>
  191. <script>
  192.     var loginForm = document.getElementById('loginForm');
  193.     loginForm.addEventListener('submit', function(event) {
  194.         event.preventDefault(); 
  195.         var email = document.getElementById('inputEmail').value;
  196.         var password = document.getElementById('inputPassword').value;
  197.           var jsonData = {
  198.               username: email,
  199.               password: password
  200.           };
  201.           var data = JSON.stringify(jsonData);
  202.           $.ajax({
  203.               url: "{{ path('api_login') }}",
  204.               method: 'POST', 
  205.               contentType: 'application/json', 
  206.               dataType: 'json',
  207.               data: data,
  208.               success: function(response) {
  209.                     location.reload();
  210.               },
  211.               error: function(error) {
  212.                   if (error.status === 401) {
  213.                       $('#errorLogin').text('L\'identifiant ou le mot de passe est incorrect');
  214.                       $('#errorLogin').addClass('text-center text-danger');
  215.                   }
  216.               }
  217.           });
  218.     });
  219.   document.addEventListener("DOMContentLoaded", function() {
  220.     const rechercheInput = document.getElementById("rechercheInput");
  221.     const submitButton = document.getElementById("submitButton");
  222.     rechercheInput.addEventListener("input", function() {
  223.       if (rechercheInput.value.trim().length > 0) {
  224.         submitButton.removeAttribute("disabled");
  225.       } else {
  226.         submitButton.setAttribute("disabled", "disabled");
  227.       }
  228.     });
  229.   });
  230. </script>