65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
const webroot = document.querySelector("meta[name='webroot']").content;
|
|
|
|
window.downloadAll = function () {
|
|
// Get all download links
|
|
const downloadLinks = document.querySelectorAll("a[download]");
|
|
|
|
// Trigger download for each link
|
|
downloadLinks.forEach((link, index) => {
|
|
// We add a delay for each download to prevent them from starting at the same time
|
|
setTimeout(() => {
|
|
const event = new MouseEvent("click");
|
|
link.dispatchEvent(event);
|
|
}, index * 100);
|
|
});
|
|
};
|
|
|
|
window.downloadZip = function () {
|
|
const jobId = window.location.pathname.split("/").pop();
|
|
const userId = document.querySelector("meta[name='user-id']").content;
|
|
|
|
fetch(`${webroot}/zip/${userId}/${jobId}`, {
|
|
method: "GET",
|
|
})
|
|
.then((res) => {
|
|
if (res.ok) {
|
|
return res.blob();
|
|
}
|
|
|
|
return Promise.reject(new Error("Failed to download zip"));
|
|
})
|
|
.then((blob) => {
|
|
const url = window.URL.createObjectURL(blob);
|
|
const a = document.createElement("a");
|
|
a.href = url;
|
|
a.download = `convertx-${userId}-${jobId}.zip`;
|
|
document.body.appendChild(a);
|
|
a.click();
|
|
a.remove();
|
|
})
|
|
.catch((err) => console.log(err));
|
|
};
|
|
|
|
const jobId = window.location.pathname.split("/").pop();
|
|
const main = document.querySelector("main");
|
|
let progressElem = document.querySelector("progress");
|
|
|
|
const refreshData = () => {
|
|
// console.log("Refreshing data...", progressElem.value, progressElem.max);
|
|
if (progressElem.value !== progressElem.max) {
|
|
fetch(`${webroot}/progress/${jobId}`, {
|
|
method: "POST",
|
|
})
|
|
.then((res) => res.text())
|
|
.then((html) => {
|
|
main.innerHTML = html;
|
|
})
|
|
.catch((err) => console.log(err));
|
|
|
|
setTimeout(refreshData, 1000);
|
|
}
|
|
|
|
progressElem = document.querySelector("progress");
|
|
};
|
|
|
|
refreshData();
|