templates/reset_password/request.html.twig line 1

Open in your IDE?
  1. {% extends 'login_base.html.twig' %}
  2. {% block title %}Mot de passe oublié{% endblock %}
  3. {% block canonical %}{{ path('app_forgot_password_request') }}{% endblock %}
  4. {% block stylesheets %}
  5.     {{ parent() }}
  6. {% endblock %}
  7. {% block body %}
  8.     <div class="login-content d-flex flex-column pt-lg-0 pt-12">
  9.         <!--begin::Logo-->
  10.         <a href="" class="login-logo pb-xl-20 pb-15">
  11.             <img src="{{ asset('/public/assets/bo/media/logo.png') }}" class="max-h-70px" alt="ZOE Business logo" />
  12.         </a>
  13.         <!--end::Logo-->
  14.         <!--begin::Signin-->
  15.         <div class="login-form">
  16.             {% for flash_error in app.flashes('reset_password_error') %}
  17.                 <div class="alert alert-danger" role="alert">{{ flash_error }}</div>
  18.             {% endfor %}
  19.             <!--begin::Form-->
  20.             {{ form_start(requestForm, {'attr': {'class': 'form', 'id': 'kt_password_reset_form', 'novalidate': 'novalidate', 'data-kt-redirect-url': ''}}) }}
  21.                 <!--begin::Title-->
  22.                 <div class="pb-5 pb-lg-15">
  23.                     <h3 class="font-weight-bolder text-dark font-size-h2 font-size-h1-lg">Réinitialiser votre mot de passe</h3>
  24.                 </div>
  25.                 <!--begin::Title-->
  26.                 <!--begin::Form group-->
  27.                 <div class="form-group">
  28.                     {{ form_label(requestForm.email) }}
  29.                     {{ form_widget(requestForm.email) }}
  30.                     <div id="mail_error" class="text-danger mt-1 d-none">Adresse email invalide</div>
  31.                 </div>
  32.                 <!--begin::Action-->
  33.                 <div class="d-flex flex-wrap justify-content-center pb-lg-0">
  34.                     <button type="button" id="kt_password_reset_submit" class="btn btn-primary mr-4 font-weight-bolder font-size-h6">
  35.                         <span class="indicator-label">Soumettre</span>
  36.                     </button>
  37.                     <a href="{{ path('app_login') }}" class="btn btn-light font-weight-bolder font-size-h6">Retour</a>
  38.                 </div>
  39.                 <!--end::Action-->
  40.             {{ form_end(requestForm) }}
  41.             <!--end::Form-->
  42.         </div>
  43.         <!--end::Signin-->
  44.     </div>
  45. {% endblock %}
  46. {% block javascripts %}
  47.     {{ parent() }}
  48.     <script>
  49.         $(document).ready(function (){
  50.             function removeClass(element, _class){
  51.                 _class.map((row) => {
  52.                     element.removeClass(row)
  53.                 })
  54.             }
  55.             function addClass(element, _class){
  56.                 _class.map((row) => {
  57.                     element.addClass(row)
  58.                 })
  59.             }
  60.             let submitPasswordButton = $("#kt_password_reset_submit")
  61.             submitPasswordButton.prop("disabled",true)
  62.             let email = $("#reset_password_request_form_email")
  63.             let mail_error = $("#mail_error")
  64.             const mail_regex = new RegExp('^[a-zA-Z.-]+@[a-zA-Z]{1,6}(?:\.[a-zA-Z]{1,6}){0,2}\.[a-zA-Z]{2,3}$')
  65.             //RULE STATE
  66.             let validEmail = false
  67.             const isTrue = (currentValue) => currentValue === true;
  68.             function verifyAll(array) {
  69.                 console.log("IS TRUE==>", array)
  70.                 if(array.every(isTrue)){
  71.                     submitPasswordButton.prop("disabled",false)
  72.                 }else{
  73.                     submitPasswordButton.prop("disabled",true)
  74.                 }
  75.             }
  76.             email.tooltip({
  77.                 enable: true,
  78.                 template: '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>'
  79.             })
  80.             email.keyup(function (){
  81.                 let email = $(this).val()
  82.                 if (email.match(mail_regex)){
  83.                     removeClass(mail_error,["d-block"])
  84.                     addClass(mail_error,["d-none"])
  85.                     validEmail = true
  86.                 }else{
  87.                     removeClass(mail_error,["d-none"])
  88.                     addClass(mail_error,["d-block"])
  89.                     validEmail = false
  90.                 }
  91.                 verifyAll([validEmail])
  92.             })
  93.             document.addEventListener('keypress', function (e) {
  94.                 const arrays = [validEmail]
  95.                 if ((e.keyCode === 13 || e.which === 13)){
  96.                     if(!arrays.every(isTrue)){
  97.                         e.preventDefault()
  98.                     }else{
  99.                         $("#kt_password_reset_form").submit()
  100.                     }
  101.                 }
  102.             });
  103.         })
  104.     </script>
  105. {% endblock %}