templates/Nordinfo/Main/parts/downloadPdf.js.html.twig line 1

Open in your IDE?
  1. <script type="text/javascript">
  2.   (function() {
  3.     
  4.     var elemsDownloadPdf = document.querySelectorAll('[data-download-pdf]');
  5.     
  6.     var _bindEvents = function() {
  7.       for (var i = 0; i < elemsDownloadPdf.length; i++) {
  8.         elemsDownloadPdf[i].addEventListener('click', _handlerClickElemsDownloadPdf.bind(this, elemsDownloadPdf[i]));
  9.       }
  10.     };
  11.     
  12.     var _handlerClickElemsDownloadPdf = function(el, ev) {
  13.       ev.preventDefault();
  14.       el.querySelector('.loader').innerText = 'Chargement en cours';
  15.       el.querySelector('.loader').setAttribute('aria-hidden', 'false');
  16.       var xhttp;
  17.       var formData = new FormData();
  18.       formData.append('function', 'download_pdf');
  19.       var filename = el.getAttribute('data-download-pdf-filename');
  20.       el.classList.add('_loading');
  21.       xhttp = new XMLHttpRequest();
  22.       xhttp.onreadystatechange = function () {
  23.         if (this.readyState === 4 && this.status === 200) {
  24.           el.querySelector('.loader').innerText = '';
  25.           el.querySelector('.loader').setAttribute('aria-hidden', 'true');
  26.           var blob = this.response;
  27.           var link = document.createElement('a');
  28.           link.href = window.URL.createObjectURL(blob);
  29.           link.download = filename;
  30.           document.body.appendChild(link);
  31.           link.click();
  32.           el.classList.remove('_loading');
  33.         }
  34.       };
  35.       xhttp.responseType = "blob";
  36.       xhttp.open('POST', '', true);
  37.       xhttp.send(formData);
  38.     };
  39.     
  40.     var _init = function() {
  41.       _bindEvents();
  42.     };
  43.     
  44.     _init();
  45.     
  46.   })();
  47. </script>