templates/partials/_footer-js.html.twig line 1

Open in your IDE?
  1. {% block javascripts %}
  2.   <script src="{{ asset('assets/js/jquery-3.6.3.min.js') }}" crossorigin="anonymous"></script>
  3.   <script src="{{ asset('assets/js/jquery-ui.js') }}"></script>
  4.   <script src="{{ asset('assets/js/bootstrap.bundle.min.js') }}"></script>
  5.   <script src="{{ asset('assets/js/aos.js') }}"></script>
  6.   <script src="{{ asset('assets/js/jquery-animated-headline.min.js') }}"></script>
  7.   <script src="{{ asset('assets/js/slick.min.js') }}?v=1"></script>
  8.   <script src="{{ asset('assets/js/scripts.js') }}?v=8"></script>
  9.   {% if captcha_enabled %}
  10.     <script src="https://www.google.com/recaptcha/api.js?hl=fr" async="" defer=""></script>
  11.   {% endif %}
  12.   <script type="text/javascript">
  13.     // set cookie
  14.     $(document).ready(function () {
  15.         if (!document.cookie.includes("Estiam France")) {
  16.           $('.cookie-consent-banner').fadeIn();
  17.         }
  18.         $('.cookie-consent-banner').on('click', '.cookie-action', function () {
  19.           let $this = $(this);
  20.           let $cookie_consent = $this.closest('.cookie-consent-banner');
  21.           let action = $this.attr('data-action');
  22.           console.log('cookie action ', action);
  23.           $cookie_consent.fadeOut();
  24.           switch (action) {
  25.             case 'accept':
  26.               document.cookie = "cookieBy= Estiam France; max-age=" + 60 * 60 * 24 * 365;
  27.               break;
  28.             case 'refuse':
  29.             default:
  30.               document.cookie = "cookieBy= Estiam France; max-age=" + 60 * 60 * 24 * 30;
  31.               break;
  32.           }
  33.         });
  34.     });
  35.     // Login form
  36.     $('#login-form').on('submit', function (event) {
  37.         event.preventDefault();
  38.         let data = $(this).serialize();
  39.         let $button = $(this).find('#btn-login');
  40.         $button.prepend('<i class="fas fa-spinner fa-pulse mr-1"></i>');
  41.         $button.prop('disabled', true);
  42.         $.ajax({
  43.           url: "{{ path('user.login') }}",
  44.           type: "POST",
  45.           dataType: 'json',
  46.           data : data,
  47.           success: function(res) {
  48.             if(res.success){
  49.               $('#signinModal .user-error').hide();
  50.               window.location.href = res.target_url;
  51.             }else{
  52.               $('#signinModal .user-error').show();
  53.             }
  54.           }
  55.         }).always(function () {
  56.           $button.find('.fa-pulse').remove();
  57.           $button.prop('disabled', false);
  58.         });
  59.     });
  60.     // Forgot password
  61.     $('.btn-forgot').click(function (){
  62.       if($('#forgotPasswordModal #field-email').val() == '') return;
  63.       $('.valid-email-forgot').hide();
  64.       let $button = $('#forgotPasswordModal').find('.btn-forgot');
  65.       $button.prepend('<i class="fas fa-spinner fa-pulse mr-1"></i>');
  66.       $button.prop('disabled', true);
  67.       var emailReset = $('#forgotPasswordModal').find('#field-email').val();
  68.       $.ajax({
  69.         url: "{{ path('user.request_reset_password') }}",
  70.         type: "POST",
  71.         dataType: 'json',
  72.         data : {email: $('#forgotPasswordModal').find('#field-email').val()},
  73.         success: function(res) {
  74.           if(res.status == 'failed'){
  75.             $('.valid-email-forgot').show();
  76.           }
  77.           else{
  78.             $('.append-email').text(emailReset);
  79.             $('.sent-email-forgot').show();
  80.             $('.hide-success').hide();
  81.           }
  82.         }
  83.       }).always(function () {
  84.         $button.find('.fa-pulse').remove();
  85.         $button.prop('disabled', false);
  86.       });
  87.     });
  88.     function checkFile(inputFile) {
  89.       if (inputFile[0].files[0].name.match(/.(pdf|docx|doc|png|jpg)$/i)) {
  90.         var size = parseInt(inputFile[0].files[0].size) / 1024;
  91.         if (size > 110485760) {
  92.           return "{% trans %}Grande taille de fichier. Vous pouvez télécharger un maximum de 5 Mo{% endtrans %}";
  93.         }
  94.       } else {
  95.         return "{% trans %}Type de fichier invalide. Vous ne pouvez télécharger que des fichiers PDF/Word{% endtrans %}";
  96.       }
  97.     }
  98.     function DataURIToBlob(dataURI) {
  99.       const splitDataURI = dataURI.split(',')
  100.       const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1])
  101.       const mimeString = splitDataURI[0].split(':')[1].split(';')[0]
  102.       const ia = new Uint8Array(byteString.length)
  103.       for (let i = 0; i < byteString.length; i++)
  104.         ia[i] = byteString.charCodeAt(i)
  105.       return new Blob([ia], { type: mimeString })
  106.     }
  107.     function showMessage(text) {
  108.       $('.notification-error').text(text).show();
  109.       handleNotification($('.notification-error'));
  110.       removeLoadButton($('#btn-submit'));
  111.     }
  112.     function handleNotification(element) {
  113.       setTimeout(function () {
  114.         element.fadeOut();
  115.       }, 3000);
  116.     }
  117.     function loadButton(element) {
  118.       element.find('i').removeClass('far fa-arrow-right');
  119.       element.find('i').addClass('fas fa-spinner fa-pulse ml-1');
  120.       element.prop('disabled', true);
  121.     }
  122.     function removeLoadButton(element) {
  123.       element.find('i').removeClass('fas fa-spinner fa-pulse ml-1');
  124.       element.find('i').addClass('far fa-arrow-right');
  125.       element.prop('disabled', false);
  126.     }
  127.     function isChecked(element){
  128.       if($(element).find('input:checkbox:checked').length > 0){
  129.         return 0;
  130.       }
  131.       return 1;
  132.     }
  133.     function requiredFile(element){
  134.       let error = 0;
  135.      
  136.       if(!$(`#${element}`).val()){
  137.         $(`.${element}`).addClass('text-red');
  138.         error = 1;
  139.         removeLoadButton($('#btn-submit'));
  140.       }
  141.       if(!error){
  142.         $(`.${element}`).removeClass('text-red');
  143.       }
  144.       return error;
  145.     }
  146.   </script>
  147. {% endblock %}