From 2870a6108cddccec561b7dcf435c9cb54ff93406 Mon Sep 17 00:00:00 2001 From: aib Date: Fri, 14 Mar 2014 05:23:47 +0200 Subject: [PATCH] Fix download button waiting if document has started but not completed downloading --- web/viewer.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index 84156ca2d..e68dfa904 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -571,6 +571,8 @@ var PDFView = { this.pdfDocument = null; var self = this; self.loading = true; + self.downloadComplete = false; + var passwordNeeded = function passwordNeeded(updatePassword, reason) { PasswordPrompt.updatePassword = updatePassword; PasswordPrompt.reason = reason; @@ -622,7 +624,7 @@ var PDFView = { }, download: function pdfViewDownload() { - function noData() { + function downloadByUrl() { downloadManager.downloadUrl(url, filename); } @@ -636,7 +638,12 @@ var PDFView = { }; if (!this.pdfDocument) { // the PDF is not ready yet - noData(); + downloadByUrl(); + return; + } + + if (!this.downloadComplete) { // the PDF is still downloading + downloadByUrl(); return; } @@ -645,8 +652,8 @@ var PDFView = { var blob = PDFJS.createBlob(data, 'application/pdf'); downloadManager.download(blob, url, filename); }, - noData // Error occurred try downloading with just the url. - ).then(null, noData); + downloadByUrl // Error occurred try downloading with just the url. + ).then(null, downloadByUrl); }, fallback: function pdfViewFallback(featureId) { @@ -864,6 +871,7 @@ var PDFView = { errorWrapper.setAttribute('hidden', 'true'); pdfDocument.getDownloadInfo().then(function() { + self.downloadComplete = true; PDFView.loadingBar.hide(); var outerContainer = document.getElementById('outerContainer'); outerContainer.classList.remove('loadingInProgress');