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