templates/security/forgot_password.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}Mot de passe oublié - PaySolution{% endblock %}
  3. {% block body %}
  4. <div class="min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 bg-gradient-to-br from-gray-50 to-blue-50">
  5.     <div class="max-w-md w-full">
  6.         <div class="bg-white rounded-2xl shadow-2xl overflow-hidden">
  7.             <!-- Header -->
  8.             <div class="bg-gradient-to-r from-primary to-primary-dark px-8 py-10 text-center">
  9.                 <div class="mx-auto h-20 w-20 flex items-center justify-center rounded-full bg-white bg-opacity-20 backdrop-blur-sm mb-4">
  10.                     <svg class="h-12 w-12 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  11.                         <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"></path>
  12.                     </svg>
  13.                 </div>
  14.                 <h2 class="text-3xl font-extrabold text-white">
  15.                     Mot de passe oublié ?
  16.                 </h2>
  17.                 <p class="mt-2 text-blue-100">
  18.                     Pas de problème, nous allons vous aider
  19.                 </p>
  20.             </div>
  21.             <div class="px-8 py-8">
  22.                 {% for message in app.flashes('success') %}
  23.                     <div class="rounded-lg bg-green-50 border-l-4 border-green-500 p-4 mb-6">
  24.                         <div class="flex">
  25.                             <div class="flex-shrink-0">
  26.                                 <svg class="h-6 w-6 text-green-500" fill="currentColor" viewBox="0 0 20 20">
  27.                                     <path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path>
  28.                                 </svg>
  29.                             </div>
  30.                             <div class="ml-3">
  31.                                 <h3 class="text-sm font-medium text-green-800 mb-1">Email envoyé !</h3>
  32.                                 <p class="text-sm text-green-700">{{ message }}</p>
  33.                                 <p class="text-xs text-green-600 mt-2">
  34.                                     💡 Vérifiez également votre dossier spam/courrier indésirable.
  35.                                 </p>
  36.                             </div>
  37.                         </div>
  38.                     </div>
  39.                 {% endfor %}
  40.                 <div class="bg-blue-50 border-l-4 border-primary rounded-lg p-4 mb-6">
  41.                     <div class="flex">
  42.                         <div class="flex-shrink-0">
  43.                             <svg class="h-5 w-5 text-primary" fill="currentColor" viewBox="0 0 20 20">
  44.                                 <path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z" clip-rule="evenodd"></path>
  45.                             </svg>
  46.                         </div>
  47.                         <div class="ml-3">
  48.                             <p class="text-sm text-blue-700">
  49.                                 Saisissez votre adresse email et nous vous enverrons un lien pour réinitialiser votre mot de passe.
  50.                             </p>
  51.                         </div>
  52.                     </div>
  53.                 </div>
  54.                 {{ form_start(form, {'attr': {'class': 'space-y-6'}}) }}
  55.                 <div>
  56.                     <label class="block text-sm font-medium text-gray-700 mb-2">
  57.                         <svg class="w-4 h-4 inline-block mr-1 text-primary" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  58.                             <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
  59.                         </svg>
  60.                         {{ form_label(form.email) }}
  61.                         <span class="text-danger">*</span>
  62.                     </label>
  63.                     {{ form_widget(form.email) }}
  64.                     {{ form_errors(form.email) }}
  65.                 </div>
  66.                 <div class="flex items-center justify-between pt-4">
  67.                     <a href="{{ path('app_login') }}" class="text-sm font-medium text-primary hover:text-primary-dark transition duration-200 flex items-center">
  68.                         <svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  69.                             <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"></path>
  70.                         </svg>
  71.                         Retour à la connexion
  72.                     </a>
  73.                     <button type="submit" class="inline-flex items-center px-6 py-3 bg-gradient-to-r from-primary to-primary-dark hover:from-primary-dark hover:to-primary text-white font-semibold rounded-lg transition duration-300 shadow-lg hover:shadow-xl transform hover:scale-105">
  74.                         <svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  75.                             <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
  76.                         </svg>
  77.                         Envoyer le lien
  78.                     </button>
  79.                 </div>
  80.                 {{ form_end(form) }}
  81.             </div>
  82.             <div class="bg-gray-50 px-8 py-4 text-center border-t border-gray-200">
  83.                 <p class="text-xs text-gray-500">
  84.                     <svg class="w-4 h-4 inline-block mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
  85.                         <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path>
  86.                     </svg>
  87.                     Le lien de réinitialisation expirera après 1 heure
  88.                 </p>
  89.             </div>
  90.         </div>
  91.     </div>
  92. </div>
  93. {% endblock %}