Merge remote-tracking branch 'adv/bookmarks'
commit
c9f36a4d1a
@ -0,0 +1,38 @@
|
||||
/* global $, calibre, EPUBJS, ePubReader */
|
||||
|
||||
(function() {
|
||||
"use strict";
|
||||
|
||||
EPUBJS.filePath = calibre.filePath;
|
||||
EPUBJS.cssPath = calibre.cssPath;
|
||||
|
||||
var reader = ePubReader(calibre.bookUrl, {
|
||||
restore: true,
|
||||
bookmarks: [calibre.bookmark]
|
||||
});
|
||||
reader.on("reader:bookmarked", updateBookmark.bind(reader, "add"));
|
||||
reader.on("reader:unbookmarked", updateBookmark.bind(reader, "remove"));
|
||||
|
||||
/**
|
||||
* @param {string} action - Add or remove bookmark
|
||||
* @param {string|int} location - Location or zero
|
||||
*/
|
||||
function updateBookmark(action, location) {
|
||||
// Remove other bookmarks (there can only be one)
|
||||
if (action === "add") {
|
||||
this.settings.bookmarks.filter(function (bookmark) {
|
||||
return bookmark !== location;
|
||||
}).map(function (bookmark) {
|
||||
this.removeBookmark(bookmark);
|
||||
}.bind(this));
|
||||
}
|
||||
|
||||
// Save to database
|
||||
$.ajax(calibre.bookmarkUrl, {
|
||||
method: "post",
|
||||
data: { bookmark: location || "" }
|
||||
}).fail(function (xhr, status, error) {
|
||||
alert(error);
|
||||
});
|
||||
}
|
||||
})();
|
Loading…
Reference in New Issue