templates/reset_password/request.html.twig line 1

  1. <!doctype html>
  2. <html lang="fr">
  3. <head>
  4.     <meta charset="utf-8" />
  5.     <title>SmartImmo Management — Admin</title>
  6.     <meta name="viewport" content="width=device-width, initial-scale=1">
  7.     <meta content="SmartImmo Management est une application de gestion locative" name="description" />
  8.     <meta content="SmartTechnology" name="author" />
  9.     <link rel="shortcut icon" href="{{ asset('assets/img/smartimmoManagementHead.png') }}">
  10.     <!-- Fonts -->
  11.     <link rel="preconnect" href="https://fonts.googleapis.com/">
  12.     <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
  13.     <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;700&family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet">
  14.     <link rel="stylesheet" href="{{ asset('assets/css/style.css') }}">
  15.     <link rel="stylesheet" href="{{ asset('assets/css/reset-password-style.css') }}">
  16. </head>
  17. <body>
  18. <div class="auth-wrap">
  19.     <div class="auth-card">
  20.         <!-- Brand -->
  21.         <div class="brand-top">
  22.             <img src="{{ asset('assets/img/smartImmoManagement.png') }}" alt="Smart Immo Management" width="50%">
  23.         </div>
  24.         <!-- Title + subtitle -->
  25.         <div class="auth-head">
  26.             <h1>Espace Admin</h1>
  27.         </div>
  28.         <div class="auth-sub" style="color: dodgerblue">
  29.             Réinitialiser votre mot de passe
  30.         </div>
  31.         <!-- Flash errors -->
  32.         <div class="px-4 flash-stack">
  33.             {% for flashError in app.flashes('reset_password_error') %}
  34.                 <div class="alert alert-danger" role="alert">{{ flashError }}</div>
  35.             {% endfor %}
  36.         </div>
  37.         <!-- Body -->
  38.         <div class="auth-body">
  39.             <p class="text-muted mb-3" style="font-size: 12px">
  40.                 Entrez votre adresse e-mail (et identifiant si demandé) pour recevoir un nouveau mot de passe.
  41.             </p>
  42.             {{ form_start(requestForm, {'attr': {'novalidate': 'novalidate'}}) }}
  43.             {# Username (optionnel selon votre logique) #}
  44.             <div class="mb-3" style="margin-bottom: 10px">
  45.                 <label class="form-label" for="{{ requestForm.username.vars.id }}">Identifiant</label>
  46.                 {{ form_widget(requestForm.username, {'attr': {'class':'form-control', 'placeholder':'Votre identifiant'}}) }}
  47.                 {{ form_errors(requestForm.username) }}
  48.             </div>
  49.             {# Email #}
  50.             <div class="mb-3">
  51.                 <label class="form-label" for="{{ requestForm.email.vars.id }}">Adresse e-mail</label>
  52.                 {{ form_widget(requestForm.email, {'attr': {'class':'form-control', 'placeholder':'nom@domaine.com'}}) }}
  53.                 {{ form_errors(requestForm.email) }}
  54.             </div>
  55.             <button class="btn btn-brand" type="submit" style="margin-top: 20px">
  56.                 Demander un nouveau mot de passe
  57.             </button>
  58.             {{ form_end(requestForm) }}
  59.         </div>
  60.         <!-- Links -->
  61.         <div class="link-row">
  62.             <a class="btn-link" href="{{ path('app_login') }}">Se connecter</a>
  63.         </div>
  64.     </div>
  65. </div>
  66. <!-- JS -->
  67. <!-- Safe redirect logic (moved AFTER jQuery load to avoid errors) -->
  68. <script>
  69.     (function(){
  70.         // If a main nav exists (already logged-in layout), bounce to dashboard
  71.         if ($("body nav").length > 0) {
  72.             window.location.href = "{{ path('app_dashboard') }}";
  73.         } else {
  74.             $("body div, body p").removeClass("d-none");
  75.         }
  76.     })();
  77. </script>
  78. </body>
  79. </html>