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);
