From a3236c83684d05729a4d8ee6ff1eaf2d6a9f9caa Mon Sep 17 00:00:00 2001 From: Vincent LAURENT Date: Mon, 23 May 2022 23:57:14 +0200 Subject: [PATCH] Upload multiple files at the same time --- public/js/organization.js | 30 +++++++++++++++++------------- templates/organization.html.php | 4 ++-- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/public/js/organization.js b/public/js/organization.js index c3c08d1..c77738a 100644 --- a/public/js/organization.js +++ b/public/js/organization.js @@ -49,7 +49,7 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) { let pdfLetter = String.fromCharCode(96 + i+1).toUpperCase(); let loadingTask = pdfjsLib.getDocument(url); - loadingTask.promise.then(function(pdf) { + await loadingTask.promise.then(function(pdf) { for(var pageNumber = 1; pageNumber <= pdf.numPages; pageNumber++ ) { pdf.getPage(pageNumber).then(function(page) { let pageIndex = pdfLetter + "_" + (page.pageNumber - 1); @@ -149,6 +149,8 @@ var loadPDF = async function(pdfBlob, filename, pdfIndex) { }, function (reason) { console.error(reason); }); + + return loadingTask; }; var pageRenderAll = function() { @@ -406,20 +408,22 @@ var createEventsListener = function() { document.getElementById('save').click(); }); document.getElementById('input_pdf_upload_2').addEventListener('change', async function(event) { - if(this.files[0].size > maxSize) { + console.log(this.files.length); + for (let i = 0; i < this.files.length; i++) { + if(this.files[i].size > maxSize) { - alert("Le PDF ne doit pas dépasser " + Math.round(maxSize/1024/1024) + " Mo"); - this.value = ""; - return; + alert("Le PDF ne doit pas dépasser " + Math.round(maxSize/1024/1024) + " Mo"); + break; + } + const cache = await caches.open('pdf'); + let filename = this.files[i].name; + let response = new Response(this.files[i], { "status" : 200, "statusText" : "OK" }); + let urlPdf = '/pdf/'+filename; + await cache.put(urlPdf, response); + let pdfBlob = await getPDFBlobFromCache(urlPdf); + nbPDF++; + await loadPDF(pdfBlob, filename, nbPDF); } - const cache = await caches.open('pdf'); - let filename = this.files[0].name; - let response = new Response(this.files[0], { "status" : 200, "statusText" : "OK" }); - let urlPdf = '/pdf/'+filename; - await cache.put(urlPdf, response); - let pdfBlob = await getPDFBlobFromCache(urlPdf); - nbPDF++; - loadPDF(pdfBlob, filename, nbPDF); this.value = ''; }); document.getElementById('btn-zoom-decrease').addEventListener('click', function(event) { diff --git a/templates/organization.html.php b/templates/organization.html.php index 91443d7..f09a5cc 100644 --- a/templates/organization.html.php +++ b/templates/organization.html.php @@ -57,12 +57,12 @@
Organisation de PDF
-
+
- +