{% extends 'base.twig' %} {% block title %}{{ 'events.reset_password'|trans }}{% endblock %} {% block body %}

{{ 'events.reset_password'|trans }}

{{ 'text.enter_new_password'|trans }}

{# Affichage des messages flash (ex: token expiré ou invalide) #} {% for flash_error in app.flashes('reset_password_error') %} {% endfor %} {# Le formulaire Symfony #} {{ form_start(form, {'attr': {'class': 'mt-8 space-y-6'}}) }}
{# Champ Nouveau Mot de Passe (first) #} {# On suppose que form.plainPassword est un RepeatedType avec un champ 'first' et 'second' #}
{{ form_label(form.password.first, 'label.new_password'|trans, {'label_attr': {'class': 'sr-only'}}) }} {{ form_widget(form.password.first, { 'attr': { 'class': 'appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-t-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm', 'placeholder': 'label.new_password'|trans, 'autocomplete': 'new-password', 'required': 'required' } }) }} {{ form_errors(form.password.first) }}
{# Champ Confirmation Mot de Passe (second) #}
{{ form_label(form.password.second, 'label.confirm_password'|trans, {'label_attr': {'class': 'sr-only'}}) }} {{ form_widget(form.password.second, { 'attr': { 'class': 'appearance-none rounded-none relative block w-full px-3 py-2 border border-gray-300 placeholder-gray-500 text-gray-900 rounded-b-md focus:outline-none focus:ring-indigo-500 focus:border-indigo-500 focus:z-10 sm:text-sm', 'placeholder': 'label.confirm_password'|trans, 'autocomplete': 'new-password', 'required': 'required' } }) }} {{ form_errors(form.password.second) }}
{# Affichage des erreurs globales du formulaire #} {{ form_errors(form) }} {# Bouton Soumettre #}
{{ form_end(form) }}
{% endblock %