Merge pull request #7529 from Snuffleupagus/setCurrentPageNumber-warn-on-outOfBounds
Log an error when the value passed to `set currentPageNumber` is out of bounds (PR 7502 followup)
This commit is contained in:
commit
ca81f4df18
59
web/app.js
59
web/app.js
@ -396,15 +396,15 @@ var PDFViewerApplication = {
|
||||
},
|
||||
|
||||
get pagesCount() {
|
||||
return this.pdfDocument.numPages;
|
||||
return this.pdfDocument ? this.pdfDocument.numPages : 0;
|
||||
},
|
||||
|
||||
set page(val) {
|
||||
this.pdfLinkService.page = val;
|
||||
this.pdfViewer.currentPageNumber = val;
|
||||
},
|
||||
|
||||
get page() { // TODO remove
|
||||
return this.pdfLinkService.page;
|
||||
get page() {
|
||||
return this.pdfViewer.currentPageNumber;
|
||||
},
|
||||
|
||||
get supportsPrinting() {
|
||||
@ -1496,30 +1496,25 @@ function webViewerInitialized() {
|
||||
}
|
||||
}, true);
|
||||
|
||||
appConfig.sidebar.toggleButton.addEventListener('click',
|
||||
function() {
|
||||
PDFViewerApplication.pdfSidebar.toggle();
|
||||
});
|
||||
appConfig.sidebar.toggleButton.addEventListener('click', function() {
|
||||
PDFViewerApplication.pdfSidebar.toggle();
|
||||
});
|
||||
|
||||
appConfig.toolbar.previous.addEventListener('click',
|
||||
function() {
|
||||
PDFViewerApplication.page--;
|
||||
});
|
||||
appConfig.toolbar.previous.addEventListener('click', function() {
|
||||
PDFViewerApplication.page--;
|
||||
});
|
||||
|
||||
appConfig.toolbar.next.addEventListener('click',
|
||||
function() {
|
||||
PDFViewerApplication.page++;
|
||||
});
|
||||
appConfig.toolbar.next.addEventListener('click', function() {
|
||||
PDFViewerApplication.page++;
|
||||
});
|
||||
|
||||
appConfig.toolbar.zoomIn.addEventListener('click',
|
||||
function() {
|
||||
PDFViewerApplication.zoomIn();
|
||||
});
|
||||
appConfig.toolbar.zoomIn.addEventListener('click', function() {
|
||||
PDFViewerApplication.zoomIn();
|
||||
});
|
||||
|
||||
appConfig.toolbar.zoomOut.addEventListener('click',
|
||||
function() {
|
||||
PDFViewerApplication.zoomOut();
|
||||
});
|
||||
appConfig.toolbar.zoomOut.addEventListener('click', function() {
|
||||
PDFViewerApplication.zoomOut();
|
||||
});
|
||||
|
||||
appConfig.toolbar.pageNumber.addEventListener('click', function() {
|
||||
this.select();
|
||||
@ -2187,7 +2182,9 @@ window.addEventListener('keydown', function keydown(evt) {
|
||||
/* falls through */
|
||||
case 75: // 'k'
|
||||
case 80: // 'p'
|
||||
PDFViewerApplication.page--;
|
||||
if (PDFViewerApplication.page > 1) {
|
||||
PDFViewerApplication.page--;
|
||||
}
|
||||
handled = true;
|
||||
break;
|
||||
case 27: // esc key
|
||||
@ -2217,7 +2214,9 @@ window.addEventListener('keydown', function keydown(evt) {
|
||||
/* falls through */
|
||||
case 74: // 'j'
|
||||
case 78: // 'n'
|
||||
PDFViewerApplication.page++;
|
||||
if (PDFViewerApplication.page < PDFViewerApplication.pagesCount) {
|
||||
PDFViewerApplication.page++;
|
||||
}
|
||||
handled = true;
|
||||
break;
|
||||
|
||||
@ -2229,8 +2228,8 @@ window.addEventListener('keydown', function keydown(evt) {
|
||||
}
|
||||
break;
|
||||
case 35: // end
|
||||
if (isViewerInPresentationMode || (PDFViewerApplication.pdfDocument &&
|
||||
PDFViewerApplication.page < PDFViewerApplication.pagesCount)) {
|
||||
if (isViewerInPresentationMode ||
|
||||
PDFViewerApplication.page < PDFViewerApplication.pagesCount) {
|
||||
PDFViewerApplication.page = PDFViewerApplication.pagesCount;
|
||||
handled = true;
|
||||
ensureViewerFocused = true;
|
||||
@ -2255,7 +2254,9 @@ window.addEventListener('keydown', function keydown(evt) {
|
||||
pdfViewer.currentScaleValue !== 'page-fit') {
|
||||
break;
|
||||
}
|
||||
PDFViewerApplication.page--;
|
||||
if (PDFViewerApplication.page > 1) {
|
||||
PDFViewerApplication.page--;
|
||||
}
|
||||
handled = true;
|
||||
break;
|
||||
|
||||
|
@ -80,7 +80,7 @@ var PDFLinkService = (function PDFLinkServiceClosure() {
|
||||
* @returns {number}
|
||||
*/
|
||||
get pagesCount() {
|
||||
return this.pdfDocument.numPages;
|
||||
return this.pdfDocument ? this.pdfDocument.numPages : 0;
|
||||
},
|
||||
|
||||
/**
|
||||
@ -111,7 +111,9 @@ var PDFLinkService = (function PDFLinkServiceClosure() {
|
||||
(destRef + 1);
|
||||
if (pageNumber) {
|
||||
if (pageNumber > self.pagesCount) {
|
||||
pageNumber = self.pagesCount;
|
||||
console.error('PDFLinkService_navigateTo: ' +
|
||||
'Trying to navigate to a non-existent page.');
|
||||
return;
|
||||
}
|
||||
self.pdfViewer.scrollPageIntoView(pageNumber, dest);
|
||||
|
||||
@ -288,11 +290,15 @@ var PDFLinkService = (function PDFLinkServiceClosure() {
|
||||
break;
|
||||
|
||||
case 'NextPage':
|
||||
this.page++;
|
||||
if (this.page < this.pagesCount) {
|
||||
this.page++;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'PrevPage':
|
||||
this.page--;
|
||||
if (this.page > 1) {
|
||||
this.page--;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'LastPage':
|
||||
|
@ -181,7 +181,7 @@ var PDFViewer = (function pdfViewer() {
|
||||
* @private
|
||||
*/
|
||||
_setCurrentPageNumber:
|
||||
function pdfViewer_setCurrentPageNumber(val, resetCurrentPageView) {
|
||||
function PDFViewer_setCurrentPageNumber(val, resetCurrentPageView) {
|
||||
if (this._currentPageNumber === val) {
|
||||
if (resetCurrentPageView) {
|
||||
this._resetCurrentPageView();
|
||||
@ -190,6 +190,8 @@ var PDFViewer = (function pdfViewer() {
|
||||
}
|
||||
|
||||
if (!(0 < val && val <= this.pagesCount)) {
|
||||
console.error('PDFViewer_setCurrentPageNumber: "' + val +
|
||||
'" is out of bounds.');
|
||||
return;
|
||||
}
|
||||
|
||||
@ -467,7 +469,7 @@ var PDFViewer = (function pdfViewer() {
|
||||
}
|
||||
},
|
||||
|
||||
_setScale: function pdfViewer_setScale(value, noScroll) {
|
||||
_setScale: function PDFViewer_setScale(value, noScroll) {
|
||||
var scale = parseFloat(value);
|
||||
|
||||
if (scale > 0) {
|
||||
@ -507,8 +509,8 @@ var PDFViewer = (function pdfViewer() {
|
||||
scale = Math.min(MAX_AUTO_SCALE, horizontalScale);
|
||||
break;
|
||||
default:
|
||||
console.error('pdfViewSetScale: \'' + value +
|
||||
'\' is an unknown zoom value.');
|
||||
console.error('PDFViewer_setScale: "' + value +
|
||||
'" is an unknown zoom value.');
|
||||
return;
|
||||
}
|
||||
this._setScaleUpdatePages(scale, value, noScroll, true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user