templates/reset_password/request.html.twig line 1
<!doctype html><html lang="fr"><head><meta charset="utf-8" /><title>SmartImmo Management — Admin</title><meta name="viewport" content="width=device-width, initial-scale=1"><meta content="SmartImmo Management est une application de gestion locative" name="description" /><meta content="SmartTechnology" name="author" /><link rel="shortcut icon" href="{{ asset('assets/img/smartimmoManagementHead.png') }}"><!-- Fonts --><link rel="preconnect" href="https://fonts.googleapis.com/"><link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin><link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;700&family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet"><style>:root{--brand:#1D4DBF;--brand-600:#1a46ad;--ink:#1b2130;--muted:#6c7a90;--bg:#f6f8fc;--card:#ffffff;--ring:rgba(29,77,191,.25);--radius:16px;--shadow:0 10px 30px rgba(22,34,66,.10);--shadow-strong:0 12px 40px rgba(22,34,66,.18);}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family: Poppins, Ubuntu, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Helvetica Neue", sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%, rgba(29,77,191,.10), transparent 60%),radial-gradient(1000px 500px at 110% 10%, rgba(29,77,191,.08), transparent 60%),var(--bg);}/* Layout */.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px;}.auth-card{width:100%;max-width:520px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s ease, transform .2s ease;}.auth-card:focus-within{ box-shadow:var(--shadow-strong); transform:translateY(-1px); }/* Top brand banner */.brand-top{display:flex; align-items:center; justify-content:center;padding:28px 28px 8px;}.brand-top img{ max-width:220px; height:auto; }/* Headings */.auth-head{ text-align:center; padding:4px 28px 0; }.auth-head h1{margin:0;font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);font-weight:600;letter-spacing:.2px;}.auth-sub{text-align:center;color:var(--brand);font-weight:500;padding:6px 28px 4px;font-size:.95rem;}/* Flash stack */.flash-stack{ padding:0 28px; }.alert{border-radius:12px;padding:10px 12px;font-size:.9rem;margin:10px 0 0;border:1px solid transparent;}.alert-danger{background:#fde8ea;color:#7d1f2a;border-color:#fac5cc;}/* Body / form */.auth-body{ padding:18px 28px 24px; }.auth-body p.text-muted{color:var(--muted);margin:0 0 12px;font-size:.9rem;line-height:1.45;}label.form-label{display:block;font-weight:500;font-size:.9rem;margin-bottom:6px;}.mb-3{ margin-bottom:14px; }/* Inputs (works with or without Bootstrap) */.form-control{width:100%;display:block;border:1px solid #e5e8ef;background:#fff;border-radius:12px;padding:10px 12px;font-size:.95rem;outline:none;transition:border-color .15s ease, box-shadow .15s ease;}.form-control:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--ring);}/* Errors (Symfony form_errors output) */.form-error-message, .form-errors, .invalid-feedback{color:#9c2331;font-size:.85rem;margin-top:6px;}/* Button */.btn{appearance:none; border:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:center;border-radius:12px; padding:10px 14px; font-weight:600; font-size:.95rem; text-decoration:none;transition:transform .05s ease, box-shadow .15s ease, background .15s ease;}.btn-brand{background:var(--brand);color:#fff;width:100%;box-shadow:0 6px 16px rgba(29,77,191,.25);}.btn-brand:hover{ background:var(--brand-600); }.btn-brand:active{ transform:translateY(1px); }/* Links row */.link-row{display:flex; justify-content:center; gap:16px;padding:0 28px 28px;}.btn-link{color:var(--brand);font-weight:500;text-decoration:none;font-size:.95rem;}.btn-link:hover{ text-decoration:underline; }/* Small screens polish */@media (max-width: 420px){.auth-card{ border-radius:14px; }.auth-body{ padding:16px 18px 20px; }.flash-stack{ padding:0 18px; }.brand-top{ padding:22px 18px 6px; }.auth-head{ padding:0 18px; }.auth-sub{ padding:6px 18px 2px; }.link-row{ padding:0 18px 18px; }}</style></head><body><div class="auth-wrap"><div class="auth-card"><!-- Brand --><div class="brand-top"><img src="{{ asset('assets/img/smartImmoManagement.png') }}" alt="Smart Immo Management" /></div><!-- Title + subtitle --><div class="auth-head"><h1>Réinitialiser votre mot de passe</h1></div><!-- Flash errors --><div class="flash-stack">{% for flashError in app.flashes('reset_password_error') %}<div class="alert alert-danger" role="alert">{{ flashError }}</div>{% endfor %}</div><!-- Body --><div class="auth-body"><p class="text-muted small mb-3" style="font-size: 12px">Entrez votre adresse e-mail (et identifiant si demandé) pour recevoir un nouveau mot de passe.</p>{{ form_start(requestForm, {'attr': {'novalidate': 'novalidate'}}) }}{# Username (optionnel selon votre logique) #}<div class="mb-3"><label class="form-label" for="{{ requestForm.username.vars.id }}">Identifiant</label>{{ form_widget(requestForm.username, {'attr': {'class':'form-control', 'placeholder':'Votre identifiant'}}) }}{{ form_errors(requestForm.username) }}</div>{# Email #}<div class="mb-3"><label class="form-label" for="{{ requestForm.email.vars.id }}">Adresse e-mail</label>{{ form_widget(requestForm.email, {'attr': {'class':'form-control', 'placeholder':'nom@domaine.com'}}) }}{{ form_errors(requestForm.email) }}</div><button class="btn btn-brand" type="submit">Demander un nouveau mot de passe</button>{{ form_end(requestForm) }}</div><!-- Links --><div class="link-row text-end"><a class="btn-link" href="{{ path('app_login') }}">Retour à la page de connexion</a></div></div></div><!-- JS: vanilla (no jQuery) --><script>(function () {// Si une nav principale existe (layout connecté), redirige vers le dashboardif (document.querySelector("body nav")) {window.location.href = "{{ path('app_dashboard') }}";} else {// Au cas où certains éléments auraient été masqués par CSS utilitairesdocument.querySelectorAll("body div, body p").forEach(function(el){el.classList.remove("d-none");});}})();</script></body></html>{#<!doctype html>#}{#<html lang="fr">#}{#<head>#}{# <meta charset="utf-8" />#}{# <title>SmartImmo Management — Admin</title>#}{# <meta name="viewport" content="width=device-width, initial-scale=1">#}{# <meta content="SmartImmo Management est une application de gestion locative" name="description" />#}{# <meta content="SmartTechnology" name="author" />#}{# <link rel="shortcut icon" href="{{ asset('assets/img/smartimmoManagementHead.png') }}">#}{# <!-- Fonts -->#}{# <link rel="preconnect" href="https://fonts.googleapis.com/">#}{# <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>#}{# <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;700&family=Ubuntu:wght@400;500;700&display=swap" rel="stylesheet">#}{#</head>#}{#<body>#}{#<div class="auth-wrap">#}{# <div class="auth-card">#}{# <!-- Brand -->#}{# <div class="brand-top">#}{# <img src="{{ asset('assets/img/smartImmoManagement.png') }}" alt="Smart Immo Management" width="50%">#}{# </div>#}{# <!-- Title + subtitle -->#}{# <div class="auth-head">#}{# <h1>Espace Admin</h1>#}{# </div>#}{# <div class="auth-sub" style="color: dodgerblue">#}{# Réinitialiser votre mot de passe#}{# </div>#}{# <!-- Flash errors -->#}{# <div class="px-4 flash-stack">#}{# {% for flashError in app.flashes('reset_password_error') %}#}{# <div class="alert alert-danger" role="alert">{{ flashError }}</div>#}{# {% endfor %}#}{# </div>#}{# <!-- Body -->#}{# <div class="auth-body">#}{# <p class="text-muted mb-3" style="font-size: 12px">#}{# Entrez votre adresse e-mail (et identifiant si demandé) pour recevoir un nouveau mot de passe.#}{# </p>#}{# {{ form_start(requestForm, {'attr': {'novalidate': 'novalidate'}}) }}#}{# #}{# Username (optionnel selon votre logique) #}{# <div class="mb-3" style="margin-bottom: 10px">#}{# <label class="form-label" for="{{ requestForm.username.vars.id }}">Identifiant</label>#}{# {{ form_widget(requestForm.username, {'attr': {'class':'form-control', 'placeholder':'Votre identifiant'}}) }}#}{# {{ form_errors(requestForm.username) }}#}{# </div>#}{# #}{# Email #}{# <div class="mb-3">#}{# <label class="form-label" for="{{ requestForm.email.vars.id }}">Adresse e-mail</label>#}{# {{ form_widget(requestForm.email, {'attr': {'class':'form-control', 'placeholder':'nom@domaine.com'}}) }}#}{# {{ form_errors(requestForm.email) }}#}{# </div>#}{# <button class="btn btn-brand" type="submit" style="margin-top: 20px">#}{# Demander un nouveau mot de passe#}{# </button>#}{# {{ form_end(requestForm) }}#}{# </div>#}{# <!-- Links -->#}{# <div class="link-row">#}{# <a class="btn-link" href="{{ path('app_login') }}">Se connecter</a>#}{# </div>#}{# </div>#}{#</div>#}{#<!-- JS -->#}{#<!-- Safe redirect logic (moved AFTER jQuery load to avoid errors) -->#}{#<script>#}{# (function(){#}{# // If a main nav exists (already logged-in layout), bounce to dashboard#}{# if ($("body nav").length > 0) {#}{# window.location.href = "{{ path('app_dashboard') }}";#}{# } else {#}{# $("body div, body p").removeClass("d-none");#}{# }#}{# })();#}{#</script>#}{#</body>#}{#</html>#}