- Migrated from https://github.com/Yetangitu/owncloud-apps
- substantial bit rot accrued in 4 years of non-maintenance which made Reader unusable - Reader now works reliably on public pages - or at least it _Works For Me™_ - Refactored a substantial part of the code to comply to the "current" (ha ha) Nextcloud API - Dropped Owncloud compatibility for lack of a testing installation - Dropped IE (<11) support - Dropped compatibility with older (<20) Nextcloud versions - Dropped app-specific ajax code, now handled by SettingsController - Updated dependencies where applicable
This commit is contained in:
parent
16afbe45fe
commit
b190e180ef
137 changed files with 30984 additions and 2 deletions
166
vendor/pdfjs/controllers/reader_controller.js
vendored
Normal file
166
vendor/pdfjs/controllers/reader_controller.js
vendored
Normal file
|
@ -0,0 +1,166 @@
|
|||
PDFJS.reader.ReaderController = function() {
|
||||
var $main = $("#main"),
|
||||
$viewer = $("#viewer"),
|
||||
$divider = $("#divider"),
|
||||
$loader = $("#loader"),
|
||||
$next = $("#next"),
|
||||
$prev = $("#prev"),
|
||||
$sidebarReflow = $('#sidebarReflow'),
|
||||
$metainfo = $("#metainfo"),
|
||||
$use_custom_colors = $("#use_custom_colors"),
|
||||
$container = $("#container"),
|
||||
$fullscreen = $("#fullscreen"),
|
||||
$bookmark = $("#bookmark"),
|
||||
$note = $("#note"),
|
||||
$nightmode = $("#nightmode"),
|
||||
$rotate_left = $("#rotate_left"),
|
||||
$rotate_right = $("#rotate_right"),
|
||||
$clear_search = $("#clear_search");
|
||||
|
||||
var reader = this,
|
||||
book = this.book,
|
||||
settings = reader.settings;
|
||||
|
||||
var slideIn = function() {
|
||||
if (reader.viewerResized) {
|
||||
var currentPosition = settings.currentPage;
|
||||
reader.viewerResized = false;
|
||||
}
|
||||
};
|
||||
|
||||
var slideOut = function() {
|
||||
var currentPosition = settings.currentPage;
|
||||
reader.viewerResized = true;
|
||||
};
|
||||
|
||||
var showLoader = function() {
|
||||
$loader.show();
|
||||
hideDivider();
|
||||
};
|
||||
|
||||
var hideLoader = function() {
|
||||
$loader.hide();
|
||||
};
|
||||
|
||||
var showDivider = function() {
|
||||
$divider.addClass("show");
|
||||
};
|
||||
|
||||
var hideDivider = function() {
|
||||
$divider.removeClass("show");
|
||||
};
|
||||
|
||||
var keylock = false;
|
||||
|
||||
var showActive = function (obj) {
|
||||
keylock = true;
|
||||
obj.addClass("active");
|
||||
setTimeout(function () {
|
||||
keylock = false;
|
||||
obj.removeClass("active");
|
||||
}, 100);
|
||||
};
|
||||
|
||||
var keyCommands = function(e) {
|
||||
|
||||
var page_no = false;
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
switch (settings.keyboard[e.keyCode]) {
|
||||
case 'previous':
|
||||
$prev.click();
|
||||
break;
|
||||
case 'next':
|
||||
$next.click();
|
||||
break;
|
||||
case 'first':
|
||||
page_no = 1;
|
||||
break;
|
||||
case 'last':
|
||||
page_no = reader.settings.numPages;
|
||||
break;
|
||||
case 'annotate':
|
||||
$note.click();
|
||||
break;
|
||||
case 'bookmark':
|
||||
$bookmark.click();
|
||||
break;
|
||||
case 'toggleTitlebar':
|
||||
reader.ControlsController.toggle();
|
||||
break;
|
||||
case 'toggleSidebar':
|
||||
reader.SidebarController.toggle();
|
||||
break;
|
||||
case 'closeSidebar':
|
||||
reader.SidebarController.hide();
|
||||
break;
|
||||
case 'toggleFullscreen':
|
||||
$fullscreen.click();
|
||||
break;
|
||||
case 'toggleNight':
|
||||
$nightmode.click();
|
||||
break;
|
||||
case 'rotateLeft':
|
||||
$rotate_left.click();
|
||||
break;
|
||||
case 'rotateRight':
|
||||
$rotate_right.click();
|
||||
break;
|
||||
case 'cycleZoom':
|
||||
reader.cycleZoom();
|
||||
break;
|
||||
case 'previousMatch':
|
||||
reader.SearchController.nextMatch(true);
|
||||
break;
|
||||
case 'nextMatch':
|
||||
if (e.shiftKey)
|
||||
reader.SearchController.nextMatch(true);
|
||||
else
|
||||
reader.SearchController.nextMatch(false);
|
||||
break;
|
||||
case 'clearSearch':
|
||||
$clear_search.click();
|
||||
break;
|
||||
case 'search':
|
||||
if (e.shiftKey) {
|
||||
reader.SidebarController.changePanelTo("Search");
|
||||
reader.SearchController.show();
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
console.log("unsupported keyCode: " + e.keyCode);
|
||||
}
|
||||
|
||||
if (page_no) {
|
||||
reader.queuePage(page_no);
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('keydown', keyCommands, false);
|
||||
|
||||
$next.on("click", function(e){
|
||||
|
||||
reader.nextPage();
|
||||
showActive($next);
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$prev.on("click", function(e){
|
||||
|
||||
reader.prevPage();
|
||||
showActive($prev);
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
return {
|
||||
"slideOut" : slideOut,
|
||||
"slideIn" : slideIn,
|
||||
"showLoader" : showLoader,
|
||||
"hideLoader" : hideLoader,
|
||||
"showDivider" : showDivider,
|
||||
"hideDivider" : hideDivider,
|
||||
"keyCommands" : keyCommands
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue