templates/connexion/connexion.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}IMMY BEAUTY - Connexion{% endblock %}
  3. {% block body %}
  4.     <div class="container mt-5">
  5.         <div class="row justify-content-center">
  6.             <div class="col-md-6">
  7.                 <form id="login-form" method="post">
  8.                     <h2 class="text-center mb-4">Mon espace fidélité</h2>
  9.                     {% if error %}
  10.                         <div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
  11.                     {% endif %}
  12.                     <div class="form-group">
  13.                         <label for="email">Email:</label>
  14.                         <input type="text" id="email" name="_username" value="{{ last_username }}" class="form-control" required autofocus>
  15.                     </div>
  16.                     <div class="form-group">
  17.                         <label for="password">Mot de passe:</label>
  18.                         <input type="password" id="password" name="_password" class="form-control" required>
  19.                     </div>
  20.                     <div class="form-group">
  21.                         <div class="custom-control custom-checkbox">
  22.                             <input type="checkbox" class="custom-control-input" id="remember_me" name="_remember_me" checked>
  23.                             <label class="custom-control-label" for="remember_me">Rester connecté</label>
  24.                         </div>
  25.                     </div>
  26.                     <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
  27.                     <div class="form-group">
  28.                         <button type="submit" class="btn btn-primary btn-block">Se connecter</button>
  29.                     </div>
  30.                     <div class="text-center">
  31.                         <span>Vous n'avez pas de compte? <a href="{{ path('inscription') }}">Inscrivez-vous</a></span>
  32.                         <br/>
  33.                         <a href="#" data-toggle="modal" data-target="#forgotPasswordModal">Mot de passe oublié?</a>
  34.                     </div>
  35.                 </form>
  36.             </div>
  37.         </div>
  38.     </div>
  39.     <section class="ftco-section">
  40.         <div class="container">
  41.             <div class="row">
  42.                 <div class="col-md-4 ftco-animate">
  43.                     <div class="media d-block text-center block-6 services">
  44.                         <div class="icon d-flex mb-3"><span class="fas fa-user-plus"></span></div>
  45.                         <div class="media-body">
  46.                             <h3 class="heading">INSCRIVEZ VOUS</h3>
  47.                             <p>Commencez votre voyage pour gagner des points et profiter d'avantages exclusifs.</p>
  48.                         </div>
  49.                     </div>
  50.                 </div>
  51.                 <div class="col-md-4 ftco-animate">
  52.                     <div class="media d-block text-center block-6 services">
  53.                         <div class="icon d-flex mb-3"><span class="fas fa-trophy"></span></div>
  54.                         <div class="media-body">
  55.                             <h3 class="heading">CUMULEZ DES POINTS</h3>
  56.                             <p>Plus vous collectez de points, plus vous débloquez de récompenses et de privilèges spéciaux.</p>
  57.                         </div>
  58.                     </div>
  59.                 </div>
  60.                 <div class="col-md-4 ftco-animate">
  61.                     <div class="media d-block text-center block-6 services">
  62.                         <div class="icon d-flex mb-3"><span class="fas fa-gift"></span></div>
  63.                         <div class="media-body">
  64.                             <h3 class="heading">PROFITEZ DES AVANTAGES</h3>
  65.                             <p>Échangez vos points contre des réductions, des produits gratuits ou des services spéciaux.</p>
  66.                         </div>
  67.                     </div>
  68.                 </div>
  69.             </div>
  70.         </div>
  71.     </section>
  72.     <!-- Le reste du code HTML reste inchangé -->
  73. {% endblock %}
  74. {% block javascripts %}
  75.     {{ parent() }}
  76.     <script>
  77.         $(document).ready(function() {
  78.             $('#login-form').submit(function(event) {
  79.                 event.preventDefault();
  80.                 var formData = $(this).serialize();
  81.                 $.ajax({
  82.                     type: 'POST',
  83.                     url: '{{ path('connexion') }}',
  84.                     data: formData,
  85.                     dataType: 'json',
  86.                     headers: {
  87.                         'X-Requested-With': 'XMLHttpRequest'
  88.                     },
  89.                     success: function(response) {
  90.                         console.log('Réponse reçue:', response);
  91.                         if (response.success) {
  92.                             toastr.success(response.message);
  93.                             window.location.href = response.redirect;
  94.                         } else {
  95.                             toastr.error(response.message || "Erreur de connexion. Veuillez vérifier vos identifiants.");
  96.                         }
  97.                     },
  98.                     error: function(xhr, status, error) {
  99.                         console.error("Erreur AJAX:", status, error);
  100.                         var errorMsg = "Une erreur est survenue lors de la connexion.";
  101.                         if (xhr.responseJSON && xhr.responseJSON.message) {
  102.                             errorMsg = xhr.responseJSON.message;
  103.                         }
  104.                         toastr.error(errorMsg);
  105.                     }
  106.                 });
  107.             });
  108.         });
  109.     </script>
  110. {% endblock %}