Browse Source

Move handling of the 'pagemode' hash parameter into `viewer.js` to restore the functionality

This regressed in 0ef6212b64.

Since the 'pagemode' hash parameter requires certain viewer functionality (e.g. thumbnails and an outline) in order to work, it seemed reasonable to move the functionality from `pdf_link_service.js` into `viewer.js`.
Similar to `namedaction`, this patch makes use of an event to forward the 'pagemode' parameter.
Jonas Jenwald 10 years ago
parent
commit
5c26e5e2cd
  1. 12
      web/pdf_link_service.js
  2. 24
      web/viewer.js

12
web/pdf_link_service.js

@ -228,13 +228,11 @@ var PDFLinkService = (function () { @@ -228,13 +228,11 @@ var PDFLinkService = (function () {
this.page = pageNumber; // simple page
}
if ('pagemode' in params) {
if (params.pagemode === 'thumbs' || params.pagemode === 'bookmarks' ||
params.pagemode === 'attachments') {
this.switchSidebarView((params.pagemode === 'bookmarks' ?
'outline' : params.pagemode), true);
} else if (params.pagemode === 'none' && this.sidebarOpen) {
document.getElementById('sidebarToggle').click();
}
var event = document.createEvent('CustomEvent');
event.initCustomEvent('pagemode', true, true, {
mode: params.pagemode,
});
this.pdfViewer.container.dispatchEvent(event);
}
} else if (/^\d+$/.test(hash)) { // page number
this.page = hash;

24
web/viewer.js

@ -1566,6 +1566,30 @@ document.addEventListener('textlayerrendered', function (e) { @@ -1566,6 +1566,30 @@ document.addEventListener('textlayerrendered', function (e) {
//#endif
}, true);
document.addEventListener('pagemode', function (evt) {
if (!PDFViewerApplication.initialized) {
return;
}
// Handle the 'pagemode' hash parameter, see also `PDFLinkService_setHash`.
var mode = evt.detail.mode;
switch (mode) {
case 'bookmarks':
// Note: Our code calls this property 'outline', even though the
// Open Parameter specification calls it 'bookmarks'.
mode = 'outline';
/* falls through */
case 'thumbs':
case 'attachments':
PDFViewerApplication.switchSidebarView(mode, true);
break;
case 'none':
if (PDFViewerApplication.sidebarOpen) {
document.getElementById('sidebarToggle').click();
}
break;
}
}, true);
document.addEventListener('namedaction', function (e) {
// Processing couple of named actions that might be useful.
// See also PDFLinkService.executeNamedAction

Loading…
Cancel
Save