link_filebrowser-1.0.1/js/filebrowser-share-page.js

js/filebrowser-share-page.js
(function ($, Drupal) {
  Drupal.behaviors.share_page = {
    attach: function (context, settings) {
      once('share-page', '#download', context).forEach(element => {
        $("#download").on("click", function (e) {
          e.preventDefault(); // Ngăn thẻ a thực hiện hành động mặc định
          $(this).addClass('js-hide')
          $('.share-page-spinner').removeClass('js-hide')
          $('.share-page-message').removeClass('js-hide')
          let url_redirect = $(this).data('url-redirect')
          let url_download = this.href
          fetch(url_download)
            .then(async response => {
              const blob = await response.blob();
              const disposition = response.headers.get("Content-Disposition");
              const filenameStarMatch = disposition.match(/filename\*\s*=\s*utf-8''([^;]+)/i);
              const filenameMatch = disposition.match(/filename\s*=\s*"?([^";]+)"?/i);
              let filename = null;
              if (filenameStarMatch) {
                filename = decodeURIComponent(filenameStarMatch[1]);
              } else if (filenameMatch) {
                filename = filenameMatch[1];
              }
              $(this).removeClass('js-hide')
              $('.share-page-spinner').addClass('js-hide')
              $('.share-page-message').addClass('js-hide')
              const url = window.URL.createObjectURL(blob);
              if (filename && url) {
                const a = document.createElement("a");
                a.href = url;
                a.download = filename;
                document.body.appendChild(a);
                a.click();
                a.remove();
                window.URL.revokeObjectURL(url);
              }
              if (url_redirect) window.location.href = url_redirect;
            });
        });
        $("#download").click()
      });
    }
  };
})(jQuery, Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc