email_verified.html
119 lignes · 5064 octets
<!DOCTYPE html> <html lang="fr" data-theme="dark"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> {% if success %} <meta http-equiv="refresh" content="5;url=/login"> {% endif %} <title>{% if success %}Email vérifié{% else %}Erreur{% endif %}</title> <link href="/static/css/output.css" rel="stylesheet"> <style> @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .spinner { animation: spin 1s linear infinite; display: inline-block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.5s ease-out; } .countdown { font-variant-numeric: tabular-nums; } </style> </head> <body class="min-h-screen bg-gradient-to-br from-base-300 via-base-200 to-base-300 flex items-center justify-center p-4"> <div class="card bg-base-100 shadow-2xl w-full max-w-md fade-in"> <div class="card-body text-center space-y-6"> {% if success %} <!-- Success Icon --> <div class="flex justify-center"> <div class="w-20 h-20 rounded-full bg-success/20 flex items-center justify-center"> <svg xmlns="http://www.w3.org/2000/svg" class="h-12 w-12 text-success" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /> </svg> </div> </div> <!-- Title --> <h1 class="text-2xl font-bold text-success">Email vérifié !</h1> <!-- Message --> <p class="text-base-content/80"> {{ message }} </p> <!-- Redirect Info --> <div class="bg-base-200 rounded-lg p-4 space-y-3"> <div class="flex items-center justify-center gap-2 text-base-content/60"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 spinner" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" /> </svg> <span>Redirection automatique dans <span id="countdown" class="countdown font-bold text-primary">5</span> secondes...</span> </div> </div> <!-- Manual Link --> <a href="/login" class="btn btn-primary btn-block"> <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1" /> </svg> Se connecter maintenant </a> {% else %} <!-- Error Icon --> <div class="flex justify-center"> <div class="w-20 h-20 rounded-full bg-error/20 flex items-center justify-center"> <svg xmlns="http://www.w3.org/2000/svg" class="h-12 w-12 text-error" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" /> </svg> </div> </div> <!-- Title --> <h1 class="text-2xl font-bold text-error">Erreur de vérification</h1> <!-- Message --> <p class="text-base-content/80"> {{ message }} </p> <!-- Links --> <div class="space-y-2"> <a href="/resend-verification" class="btn btn-outline btn-primary btn-block"> Renvoyer l'email de vérification </a> <a href="/login" class="btn btn-ghost btn-block"> Retour à la connexion </a> </div> {% endif %} </div> </div> {% if success %} <script> // Countdown timer let seconds = 5; const countdownEl = document.getElementById('countdown'); const timer = setInterval(() => { seconds--; countdownEl.textContent = seconds; if (seconds <= 0) { clearInterval(timer); window.location.href = '/login'; } }, 1000); </script> {% endif %} </body> </html>
GitRust