templates/security/register.html.twig line 1

  1. {% extends 'base.html.twig' %}
  2. {% block title %}Inscription{% endblock %}
  3. {% block body_class %}bg-biologie effect-bg-1 center{% endblock %}
  4. {% block body %}
  5. <div class="container">
  6.     <div class="row justify-content-center">
  7.         <div class="col-12 col-md-8">
  8.             <div class="bg-primary-transparent p-5 my-5">
  9.                 <img src="{{ asset('images/identity/logo_short.png') }}" alt="Logo la brume">
  10.                 <h1>Inscription</h1>
  11.                 <p>Déjà inscrit ? <a href="{{ path('app_login') }}">Connexion</a></p>
  12.                 {{ form_start(registrationForm) }}
  13.                     <div class="form-group">
  14.                         {{ form_label(registrationForm.username) }}
  15.                         {{ form_errors(registrationForm.username) }}
  16.                         {{ form_widget(registrationForm.username) }}
  17.                         {{ form_help(registrationForm.username) }}
  18.                     </div>
  19.                     <div class="form-group">
  20.                         {{ form_label(registrationForm.email) }}
  21.                         {{ form_errors(registrationForm.email) }}
  22.                         {{ form_widget(registrationForm.email) }}
  23.                     </div>
  24.                     {{ form_row(registrationForm.plainPassword) }}
  25.                     <div class="form-group d-flex align-items-center">
  26.                         <label class="toggleButton">
  27.                             <input type="checkbox" name="newsletter">
  28.                             <span>
  29.                                 <svg viewBox="0 0 44 44">
  30.                                     <path d="M14,24 L21,31 L39.7428882,11.5937758 C35.2809627,6.53125861 30.0333333,4 24,4 C12.95,4 4,12.95 4,24 C4,35.05 12.95,44 24,44 C35.05,44 44,35.05 44,24 C44,19.3 42.5809627,15.1645919 39.7428882,11.5937758" transform="translate(-2.000000, -2.000000)"></path>
  31.                                 </svg>
  32.                             </span>
  33.                         </label>
  34.                         <p class="mb-0">S'inscrire à la Newsletter.<br><small class="text-muted">Vous pouvez vous désisncrire à tout moment de notre Newsletter.</small></p>
  35.                     </div>
  36.                     <div class="form-group d-flex align-items-center">
  37.                         <p class="mb-0">En validant votre inscription, vous acceptez les <a href="{{ path('app_page_cgu') }}" target="_blank" rel="nofollow">conditions générales d'utilisation</a>.</p>
  38.                     </div>
  39.                     <input type="submit" class="btn mt-4" value="Inscription">
  40.                 {{ form_end(registrationForm) }}
  41.             </div>
  42.         </div>
  43.     </div>
  44. </div>
  45.     <div class="bg-effect"></div>
  46. {% endblock %}
  47. {% block footer_scripts %}
  48. <script>
  49.     $(document).ready(function() {
  50.         let show_password =
  51.         '<div class="Control-label--showPassword">'+
  52.             '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="32" height="32" class="svg-toggle-password" title="Toggle Password Security">'+
  53.                 '<title>Afficher/Masquer le mot de passe</title>'+
  54.                 '<path d="M24,9A23.654,23.654,0,0,0,2,24a23.633,23.633,0,0,0,44,0A23.643,23.643,0,0,0,24,9Zm0,25A10,10,0,1,1,34,24,10,10,0,0,1,24,34Zm0-16a6,6,0,1,0,6,6A6,6,0,0,0,24,18Z"/>'+
  55.                 '<rect x="20.133" y="2.117" height="44" transform="translate(23.536 -8.587) rotate(45)" class="closed-eye"/>'+
  56.                 '<rect x="22" y="3.984" width="4" height="44" transform="translate(25.403 -9.36) rotate(45)" style="fill:#fff" class="closed-eye"/>'+
  57.             '</svg>'+
  58.         '</div>'
  59.         $('.password').each(function(){
  60.             $(this).append(show_password);
  61.         });
  62.         let show_test = '<div class="strength-lines"><div class="line"></div><div class="line"></div><div class="line"></div></div>'
  63.         $('.password').first().append(show_test)
  64.         // hide/show password
  65.         $(".Control-label--showPassword").click(function() {
  66.             $(".closed-eye").toggleClass("open");
  67.             let input = $(".ControlInput--password");
  68.             if (input.attr("type") == "password") {
  69.                 input.attr("type", "text");
  70.             } else {
  71.                 input.attr("type", "password");
  72.             }
  73.         });
  74.         // strength validation on keyup-event
  75.         $(".ControlInput--password").first().on("keyup", function() {
  76.             let val = $(this).val(),
  77.                 color = testPasswordStrength(val);
  78.             styleStrengthLine(color, val);
  79.         });
  80.         // check password strength
  81.         function testPasswordStrength(value) {
  82.             let strongRegex = new RegExp(
  83.                     '^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[=/\()%ยง!@#$%^&*])(?=.{8,})'
  84.                 ),
  85.                 mediumRegex = new RegExp(
  86.                     '^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})'
  87.                 );
  88.             if (strongRegex.test(value)) {
  89.                 return "green";
  90.             } else if (mediumRegex.test(value)) {
  91.                 return "orange";
  92.             } else {
  93.                 return "red";
  94.             }
  95.         }
  96.         function styleStrengthLine(color, value) {
  97.             $(".line")
  98.                 .removeClass("bg-red bg-orange bg-green")
  99.                 .addClass("bg-transparent");
  100.             if (value) {
  101.                 if (color === "red") {
  102.                     $(".line:nth-child(1)")
  103.                         .removeClass("bg-transparent")
  104.                         .addClass("bg-red");
  105.                 } else if (color === "orange") {
  106.                     $(".line:not(:last-of-type)")
  107.                         .removeClass("bg-transparent")
  108.                         .addClass("bg-orange");
  109.                 } else if (color === "green") {
  110.                     $(".line")
  111.                         .removeClass("bg-transparent")
  112.                         .addClass("bg-green");
  113.                 }
  114.             }
  115.         }
  116.     });
  117. </script>
  118. {% endblock %}