Display error messages on more problems.
This commit is contained in:
parent
6dd706c0c3
commit
b40af3555b
14
src/core.js
14
src/core.js
@ -39,11 +39,15 @@ function getPdf(arg, callback) {
|
|||||||
if ('error' in params)
|
if ('error' in params)
|
||||||
xhr.onerror = params.error || undefined;
|
xhr.onerror = params.error || undefined;
|
||||||
|
|
||||||
xhr.onreadystatechange = function getPdfOnreadystatechange() {
|
xhr.onreadystatechange = function getPdfOnreadystatechange(e) {
|
||||||
if (xhr.readyState === 4 && xhr.status === xhr.expected) {
|
if (xhr.readyState === 4) {
|
||||||
var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse ||
|
if (xhr.status === xhr.expected) {
|
||||||
xhr.responseArrayBuffer || xhr.response);
|
var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse ||
|
||||||
callback(data);
|
xhr.responseArrayBuffer || xhr.response);
|
||||||
|
callback(data);
|
||||||
|
} else {
|
||||||
|
params.error(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
xhr.send(null);
|
xhr.send(null);
|
||||||
|
@ -129,7 +129,14 @@ var PDFView = {
|
|||||||
if (evt.lengthComputable)
|
if (evt.lengthComputable)
|
||||||
self.progress(evt.loaded / evt.total);
|
self.progress(evt.loaded / evt.total);
|
||||||
},
|
},
|
||||||
error: self.error
|
error: function getPdfError(e) {
|
||||||
|
var loadingIndicator = document.getElementById('loading');
|
||||||
|
loadingIndicator.innerHTML = 'Error';
|
||||||
|
var moreInfo = {
|
||||||
|
message: 'Unexpected server response of ' + e.target.status + '.'
|
||||||
|
};
|
||||||
|
self.error('An error occurred while loading the PDF.', moreInfo);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
function getPdfLoad(data) {
|
function getPdfLoad(data) {
|
||||||
self.loading = true;
|
self.loading = true;
|
||||||
@ -181,33 +188,46 @@ var PDFView = {
|
|||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
|
|
||||||
error: function pdfViewError(message, error) {
|
/**
|
||||||
|
* Show the error box.
|
||||||
|
* @param {String} message A message that is human readable.
|
||||||
|
* @param {Object} moreInfo (optional) Further information about the error
|
||||||
|
* that is more technical. Should have a 'message'
|
||||||
|
* and optionally a 'stack' property.
|
||||||
|
*/
|
||||||
|
error: function pdfViewError(message, moreInfo) {
|
||||||
var errorWrapper = document.getElementById('errorWrapper');
|
var errorWrapper = document.getElementById('errorWrapper');
|
||||||
errorWrapper.removeAttribute('hidden');
|
errorWrapper.removeAttribute('hidden');
|
||||||
|
|
||||||
var errorMessage = document.getElementById('errorMessage');
|
var errorMessage = document.getElementById('errorMessage');
|
||||||
errorMessage.innerHTML = message;
|
errorMessage.innerHTML = message;
|
||||||
|
|
||||||
if (error) {
|
var closeButton = document.getElementById('errorClose');
|
||||||
var errorMoreInfo = document.getElementById('errorMoreInfo');
|
closeButton.onclick = function() {
|
||||||
var moreInfoButton = document.getElementById('errorShowMore');
|
errorWrapper.setAttribute('hidden', 'true');
|
||||||
var lessInfoButton = document.getElementById('errorShowLess');
|
};
|
||||||
var closeButton = document.getElementById('errorClose');
|
|
||||||
moreInfoButton.onclick = function() {
|
var errorMoreInfo = document.getElementById('errorMoreInfo');
|
||||||
errorMoreInfo.removeAttribute('hidden');
|
var moreInfoButton = document.getElementById('errorShowMore');
|
||||||
moreInfoButton.setAttribute('hidden', 'true');
|
var lessInfoButton = document.getElementById('errorShowLess');
|
||||||
lessInfoButton.removeAttribute('hidden');
|
moreInfoButton.onclick = function() {
|
||||||
};
|
errorMoreInfo.removeAttribute('hidden');
|
||||||
lessInfoButton.onclick = function() {
|
moreInfoButton.setAttribute('hidden', 'true');
|
||||||
errorMoreInfo.setAttribute('hidden', 'true');
|
lessInfoButton.removeAttribute('hidden');
|
||||||
moreInfoButton.removeAttribute('hidden');
|
};
|
||||||
lessInfoButton.setAttribute('hidden', 'true');
|
lessInfoButton.onclick = function() {
|
||||||
};
|
errorMoreInfo.setAttribute('hidden', 'true');
|
||||||
closeButton.onclick = function() {
|
|
||||||
errorWrapper.setAttribute('hidden', 'true');
|
|
||||||
};
|
|
||||||
moreInfoButton.removeAttribute('hidden');
|
moreInfoButton.removeAttribute('hidden');
|
||||||
errorMoreInfo.innerHTML = error.message + '\n' + error.stack;
|
lessInfoButton.setAttribute('hidden', 'true');
|
||||||
|
};
|
||||||
|
moreInfoButton.removeAttribute('hidden');
|
||||||
|
lessInfoButton.setAttribute('hidden', 'true');
|
||||||
|
errorMoreInfo.innerHTML = 'PDF.JS Build: ' + PDFJS.build + '\n';
|
||||||
|
|
||||||
|
if (moreInfo) {
|
||||||
|
errorMoreInfo.innerHTML += 'Message: ' + moreInfo.message;
|
||||||
|
if (moreInfo.stack)
|
||||||
|
errorMoreInfo.innerHTML += '\n' + 'Stack: ' + moreInfo.stack;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -225,6 +245,9 @@ var PDFView = {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var errorWrapper = document.getElementById('errorWrapper');
|
||||||
|
errorWrapper.setAttribute('hidden', 'true');
|
||||||
|
|
||||||
var loadingIndicator = document.getElementById('loading');
|
var loadingIndicator = document.getElementById('loading');
|
||||||
loadingIndicator.setAttribute('hidden', 'true');
|
loadingIndicator.setAttribute('hidden', 'true');
|
||||||
|
|
||||||
@ -241,7 +264,11 @@ var PDFView = {
|
|||||||
while (container.hasChildNodes())
|
while (container.hasChildNodes())
|
||||||
container.removeChild(container.lastChild);
|
container.removeChild(container.lastChild);
|
||||||
|
|
||||||
var pdf = new PDFJS.PDFDoc(data);
|
try {
|
||||||
|
var pdf = new PDFJS.PDFDoc(data);
|
||||||
|
} catch (e) {
|
||||||
|
this.error('An error occurred while reading the PDF.', e);
|
||||||
|
}
|
||||||
var pagesCount = pdf.numPages;
|
var pagesCount = pdf.numPages;
|
||||||
document.getElementById('numPages').innerHTML = pagesCount;
|
document.getElementById('numPages').innerHTML = pagesCount;
|
||||||
document.getElementById('pageNumber').max = pagesCount;
|
document.getElementById('pageNumber').max = pagesCount;
|
||||||
@ -533,7 +560,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight,
|
|||||||
this.onAfterDraw();
|
this.onAfterDraw();
|
||||||
}).bind(this),
|
}).bind(this),
|
||||||
function pageViewErrorback(e) {
|
function pageViewErrorback(e) {
|
||||||
PDFView.error('An error occured while rendering the page.', e);
|
PDFView.error('An error occurred while rendering the page.', e);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user