77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
|
PDFJS.reader.SidebarController = function(book) {
|
||
|
var reader = this,
|
||
|
settings = reader.settings;
|
||
|
|
||
|
var $sidebar = $("#sidebar"),
|
||
|
$panels = $("#panels"),
|
||
|
$views = $("#views"),
|
||
|
$close = $("#hide-Sidebar");
|
||
|
$slider = $("#slider");
|
||
|
|
||
|
var activePanel = "Toc";
|
||
|
|
||
|
var changePanelTo = function(viewName) {
|
||
|
var controllerName = viewName + "Controller";
|
||
|
|
||
|
if (!(activePanel == viewName || typeof reader[controllerName] === 'undefined' )) {
|
||
|
reader[activePanel+ "Controller"].hide();
|
||
|
reader[controllerName].show();
|
||
|
activePanel = viewName;
|
||
|
|
||
|
//$panels.find('.open').removeClass("open");
|
||
|
$sidebar.find('.open').removeClass("open");
|
||
|
$panels.find("#show-" + viewName ).addClass("open");
|
||
|
$views.find("#" + viewName.toLowerCase() + "View").addClass("open");
|
||
|
}
|
||
|
show();
|
||
|
};
|
||
|
|
||
|
var getActivePanel = function() {
|
||
|
return activePanel;
|
||
|
};
|
||
|
|
||
|
var show = function() {
|
||
|
reader.sidebarOpen = true;
|
||
|
if (settings.sidebarReflow) reader.ReaderController.slideOut();
|
||
|
$slider.hide();
|
||
|
$sidebar.addClass("open");
|
||
|
if (getActivePanel() === "Toc")
|
||
|
reader.TocController.scrollToPage(settings.currentPage);
|
||
|
}
|
||
|
|
||
|
var hide = function() {
|
||
|
reader.sidebarOpen = false;
|
||
|
$slider.show();
|
||
|
reader.ReaderController.slideIn();
|
||
|
$sidebar.removeClass("open");
|
||
|
};
|
||
|
|
||
|
var toggle = function () {
|
||
|
(reader.sidebarOpen) ? hide() : show();
|
||
|
};
|
||
|
|
||
|
$close.on("click", function () {
|
||
|
reader.SidebarController.hide();
|
||
|
// $slider.addClass("icon-menu");
|
||
|
// $slider.removeClass("icon-right");
|
||
|
|
||
|
});
|
||
|
|
||
|
$panels.find(".show_view").on("click", function(e) {
|
||
|
var view = $(this).data("view");
|
||
|
|
||
|
changePanelTo(view);
|
||
|
e.preventDefault();
|
||
|
});
|
||
|
|
||
|
$sidebar.css("width", "calc(" + parseInt(settings.thumbnailWidth) + "px + 2em)");
|
||
|
|
||
|
return {
|
||
|
'show' : show,
|
||
|
'hide' : hide,
|
||
|
'toggle' : toggle,
|
||
|
'getActivePanel' : getActivePanel,
|
||
|
'changePanelTo' : changePanelTo
|
||
|
};
|
||
|
};
|