diff options
-rw-r--r-- | js/read.js | 18 | ||||
-rw-r--r-- | read.html | 34 |
2 files changed, 32 insertions, 20 deletions
@@ -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}); @@ -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}); } }); |