Merge pull request #6063 from Snuffleupagus/pdfLinkService-optional-history

Tweak the PDFLinkService a bit
This commit is contained in:
Yury Delendik 2015-05-29 13:16:30 -05:00
commit d3fa65e019

View File

@ -65,12 +65,14 @@ var PDFLinkService = (function () {
get page() { get page() {
return this.pdfViewer.currentPageNumber; return this.pdfViewer.currentPageNumber;
}, },
/** /**
* @param {number} value * @param {number} value
*/ */
set page(value) { set page(value) {
this.pdfViewer.currentPageNumber = value; this.pdfViewer.currentPageNumber = value;
}, },
/** /**
* @param dest - The PDF destination object. * @param dest - The PDF destination object.
*/ */
@ -89,12 +91,14 @@ var PDFLinkService = (function () {
} }
self.pdfViewer.scrollPageIntoView(pageNumber, dest); self.pdfViewer.scrollPageIntoView(pageNumber, dest);
// Update the browsing history. if (self.pdfHistory) {
self.pdfHistory.push({ // Update the browsing history.
dest: dest, self.pdfHistory.push({
hash: destString, dest: dest,
page: pageNumber hash: destString,
}); page: pageNumber
});
}
} else { } else {
self.pdfDocument.getPageIndex(destRef).then(function (pageIndex) { self.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {
var pageNum = pageIndex + 1; var pageNum = pageIndex + 1;
@ -173,7 +177,9 @@ var PDFLinkService = (function () {
var params = parseQueryString(hash); var params = parseQueryString(hash);
// borrowing syntax from "Parameters for Opening PDF Files" // borrowing syntax from "Parameters for Opening PDF Files"
if ('nameddest' in params) { if ('nameddest' in params) {
this.pdfHistory.updateNextHashParam(params.nameddest); if (this.pdfHistory) {
this.pdfHistory.updateNextHashParam(params.nameddest);
}
this.navigateTo(params.nameddest); this.navigateTo(params.nameddest);
return; return;
} }
@ -203,7 +209,7 @@ var PDFLinkService = (function () {
zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null]; zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null];
} else if (zoomArg === 'FitR') { } else if (zoomArg === 'FitR') {
if (zoomArgs.length !== 5) { if (zoomArgs.length !== 5) {
console.error('pdfViewSetHash: ' + console.error('PDFLinkService_setHash: ' +
'Not enough parameters for \'FitR\'.'); 'Not enough parameters for \'FitR\'.');
} else { } else {
dest = [null, { name: zoomArg }, dest = [null, { name: zoomArg },
@ -211,7 +217,7 @@ var PDFLinkService = (function () {
(zoomArgs[3] | 0), (zoomArgs[4] | 0)]; (zoomArgs[3] | 0), (zoomArgs[4] | 0)];
} }
} else { } else {
console.error('pdfViewSetHash: \'' + zoomArg + console.error('PDFLinkService_setHash: \'' + zoomArg +
'\' is not a valid zoom value.'); '\' is not a valid zoom value.');
} }
} }
@ -233,7 +239,9 @@ var PDFLinkService = (function () {
} else if (/^\d+$/.test(hash)) { // page number } else if (/^\d+$/.test(hash)) { // page number
this.page = hash; this.page = hash;
} else { // named destination } else { // named destination
this.pdfHistory.updateNextHashParam(unescape(hash)); if (this.pdfHistory) {
this.pdfHistory.updateNextHashParam(unescape(hash));
}
this.navigateTo(unescape(hash)); this.navigateTo(unescape(hash));
} }
}, },
@ -245,11 +253,15 @@ var PDFLinkService = (function () {
// See PDF reference, table 8.45 - Named action // See PDF reference, table 8.45 - Named action
switch (action) { switch (action) {
case 'GoBack': case 'GoBack':
this.pdfHistory.back(); if (this.pdfHistory) {
this.pdfHistory.back();
}
break; break;
case 'GoForward': case 'GoForward':
this.pdfHistory.forward(); if (this.pdfHistory) {
this.pdfHistory.forward();
}
break; break;
case 'NextPage': case 'NextPage':