Browse Source

Merge pull request #4455 from aib/master

Fix download button waiting if document has started but not completed downloading
Yury Delendik 11 years ago
parent
commit
9c59437ac3
  1. 16
      web/viewer.js

16
web/viewer.js

@ -605,6 +605,8 @@ var PDFView = {
var self = this; var self = this;
self.loading = true; self.loading = true;
self.downloadComplete = false;
var passwordNeeded = function passwordNeeded(updatePassword, reason) { var passwordNeeded = function passwordNeeded(updatePassword, reason) {
PasswordPrompt.updatePassword = updatePassword; PasswordPrompt.updatePassword = updatePassword;
PasswordPrompt.reason = reason; PasswordPrompt.reason = reason;
@ -656,7 +658,7 @@ var PDFView = {
}, },
download: function pdfViewDownload() { download: function pdfViewDownload() {
function noData() { function downloadByUrl() {
downloadManager.downloadUrl(url, filename); downloadManager.downloadUrl(url, filename);
} }
@ -670,7 +672,12 @@ var PDFView = {
}; };
if (!this.pdfDocument) { // the PDF is not ready yet if (!this.pdfDocument) { // the PDF is not ready yet
noData(); downloadByUrl();
return;
}
if (!this.downloadComplete) { // the PDF is still downloading
downloadByUrl();
return; return;
} }
@ -679,8 +686,8 @@ var PDFView = {
var blob = PDFJS.createBlob(data, 'application/pdf'); var blob = PDFJS.createBlob(data, 'application/pdf');
downloadManager.download(blob, url, filename); downloadManager.download(blob, url, filename);
}, },
noData // Error occurred try downloading with just the url. downloadByUrl // Error occurred try downloading with just the url.
).then(null, noData); ).then(null, downloadByUrl);
}, },
fallback: function pdfViewFallback(featureId) { fallback: function pdfViewFallback(featureId) {
@ -897,6 +904,7 @@ var PDFView = {
DocumentProperties.resolveDataAvailable(); DocumentProperties.resolveDataAvailable();
pdfDocument.getDownloadInfo().then(function() { pdfDocument.getDownloadInfo().then(function() {
self.downloadComplete = true;
PDFView.loadingBar.hide(); PDFView.loadingBar.hide();
var outerContainer = document.getElementById('outerContainer'); var outerContainer = document.getElementById('outerContainer');
outerContainer.classList.remove('loadingInProgress'); outerContainer.classList.remove('loadingInProgress');

Loading…
Cancel
Save