summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/read.js18
-rw-r--r--read.html34
2 files changed, 32 insertions, 20 deletions
diff --git a/js/read.js b/js/read.js
index 9708d06..6a56d20 100644
--- a/js/read.js
+++ b/js/read.js
@@ -32,7 +32,7 @@ function open_lastread() {
item = item || {};
- if (item.cfi) book.gotoCfi(item.cfi);
+ if (item.cfi) book.rendition.display(item.cfi);
if (navigator.onLine) {
@@ -44,7 +44,7 @@ function open_lastread() {
{cfi: data.cfi, page: data.page, total: data.total});
if (item.cfi != data.cfi && (!item.page || data.page > item.page))
- book.gotoCfi(data.cfi);
+ book.rendition.display(data.cfi);
}
});
@@ -205,7 +205,7 @@ function apply_styles() {
function clear_lastread() {
if (confirm("Clear stored last read location?")) {
- var total = window.book.pagination.totalPages;
+ var total = book.locations.length();
if (navigator.onLine) {
$.post("backend.php", { op: "storelastread", page: -1, cfi: "", id: $.urlParam("id") }, function(data) {
@@ -221,8 +221,8 @@ function clear_lastread() {
function mark_as_read() {
if (confirm("Mark book as read?")) {
- var total = window.book.pagination.totalPages;
- var lastCfi = book.pagination.cfiFromPage(total);
+ var total = book.locations.length();
+ var lastCfi = book.locations.cfiFromPercentage(1);
if (navigator.onLine) {
$.post("backend.php", { op: "storelastread", page: total, cfi: lastCfi, id: $.urlParam("id") }, function(data) {
@@ -237,9 +237,11 @@ function mark_as_read() {
}
function save_and_close() {
- var currentPage = book.pagination.pageFromCfi(book.getCurrentLocationCfi());
- var currentCfi = book.getCurrentLocationCfi();
- var totalPages = book.pagination.totalPages;
+ var location = book.rendition.currentLocation();
+
+ var currentPage = location.start.location;
+ var currentCfi = location.start.cfi;
+ var totalPages = book.locations.length();
localforage.setItem(cacheId("lastread"),
{cfi: currentCfi, page: currentPage, total: totalPages});
diff --git a/read.html b/read.html
index e9502aa..9ca9252 100644
--- a/read.html
+++ b/read.html
@@ -880,26 +880,36 @@
}
- $(".loading").hide();
+ $(".location").click(function() {
+ var current = book.rendition.currentLocation().start.location;
+ var total = book.locations.length();
+ var page = prompt("Jump to location [1-" + total + "]", current);
- });
+ if (page) {
+ book.rendition.display(book.locations._locations[page]);
+ }
+ });
- rendition.on('relocated', function(location) {
+ open_lastread();
- /*$("#cur_page").html(location.anchorPage);
+ window.setTimeout(function() {
+ $(".loading").hide();
+ }, 1500);
- var total = book.pagination.totalPages;
- if (book.pagination.totalPages > 0) {
- var pct = parseInt(location.anchorPage / book.pagination.totalPages * 100);
- $("#page_pct").html(pct + "%");
- } */
+ });
+
+ rendition.on('relocated', function(location) {
- var currentPage = book.locations.percentageFromCfi(location.start.cfi);
+ var currentPage = location.start.location;
var currentCfi = location.start.cfi;
+ var totalPages = book.locations.length();
+ var pct = book.locations.percentageFromCfi(currentCfi);
- $("#page_pct").html(currentPage + '%');
+ $("#cur_page").html(currentPage);
+ $("#total_pages").html(totalPages);
+ $("#page_pct").html(parseInt(pct*100) + '%');
if (_store_position && new Date().getTime()/1000 - _last_position_sync > 15) {
console.log("storing lastread");
@@ -921,7 +931,7 @@
}
localforage.setItem(cacheId("lastread"),
- {cfi: currentCfi, page: currentPage, total: 100});
+ {cfi: currentCfi, page: currentPage, total: totalPages});
}
});