1
0
Fork 0
mirror of https://github.com/Yetangitu/owncloud-apps.git synced 2025-10-02 14:49:17 +02:00
nextcloud-apps/files_reader/vendor/pdfjs/controllers/bookmarks_controller.js
2018-01-18 01:08:41 +01:00

86 lines
2.3 KiB
JavaScript

PDFJS.reader.BookmarksController = function() {
var reader = this,
eventBus = this.eventBus,
book = this.book,
annotations = reader.settings.annotations;
var $bookmarks = $("#bookmarksView"),
$list = $bookmarks.find("#bookmarks"),
$bookmark = $("#bookmark");
var show = function() {
$bookmarks.addClass('open');
};
var hide = function() {
$bookmarks.removeClass('open');
};
var addBookmarkItem = function (bookmark) {
$list.append(reader.NotesController.createItem(bookmark));
reader.settings.session.setBookmark(bookmark.id, bookmark.anchor, bookmark.type, bookmark);
};
var addBookmark = function (pageNum) {
var bookmark = new reader.Annotation(
"bookmark",
pageNum,
null,
pageToId(pageNum)
);
addBookmarkItem(bookmark);
};
var removeBookmark = function (pageNum) {
var id = pageToId(pageNum);
console.log("ID", id);
if (isBookmarked(id)) {
delete reader.settings.annotations[id];
reader.settings.session.deleteBookmark(id);
if (id === pageToId(reader.settings.currentPage)) {
$bookmark
.removeClass("icon-turned_in")
.addClass("icon-turned_in_not");
}
}
};
eventBus.on('bookmarkremoved', function removeBookmark1(e) {
var id = e.id,
$item = $("#"+id);
$item.remove();
if (id === pageToId(reader.settings.currentPage)) {
$bookmark
.removeClass("icon-turned_in")
.addClass("icon-turned_in_not");
}
});
var pageToId = function (pageNum) {
return "page_" + pageNum;
};
var isBookmarked = function (pageNum) {
return (reader.settings.annotations[pageToId(pageNum)] !== undefined);
};
for (var bookmark in annotations) {
if (annotations.hasOwnProperty(bookmark) && (annotations[bookmark].type === "bookmark"))
addBookmarkItem(annotations[bookmark]);
};
return {
"show" : show,
"hide" : hide,
"addItem" : addBookmarkItem,
"addBookmark" : addBookmark,
"removeBookmark" : removeBookmark,
"pageToId" : pageToId,
"isBookmarked" : isBookmarked
};
};