summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-02-26 13:59:20 +0300
committerAndrew Dolgov <[email protected]>2017-02-26 13:59:20 +0300
commit6f0d0b811ad17f82acb2e798dba355d5b82af30d (patch)
tree1dccc88cf5c976d206ba7cb494725d78a1402d18
parent8aaf1fad0c1cfa65132f052f0f98b3452ddc4eeb (diff)
upd readme
-rw-r--r--README.md2
-rw-r--r--js/read.js28
-rw-r--r--read.html7
3 files changed, 29 insertions, 8 deletions
diff --git a/README.md b/README.md
index f1c0f0b..a578741 100644
--- a/README.md
+++ b/README.md
@@ -4,9 +4,11 @@ The Epube
responsive web EPUB reader using EPUB.js and Calibre database
relies on HTTP Authentication provided by httpd
+has transparent offline mode via service workers
due to EPUB.js strangeness, some URL rewriting is required (nginx config included)
+
Acknowledgements
================
diff --git a/js/read.js b/js/read.js
index 4fb74ce..fed73f7 100644
--- a/js/read.js
+++ b/js/read.js
@@ -92,9 +92,17 @@ function zoom(incr) {
function clear_lastread() {
if (confirm("Clear stored last read location?")) {
- $.post("backend.php", { op: "storelastread", page: -1, cfi: "", id: $.urlParam("id") }, function(data) {
- $(".lastread_input").val(data.page);
- });
+ var total = window.book.pagination.totalPages;
+
+ if (navigator.onLine) {
+ $.post("backend.php", { op: "storelastread", page: -1, cfi: "", id: $.urlParam("id") }, function(data) {
+ $(".lastread_input").val(data.page);
+ });
+ }
+
+ localforage.setItem(cacheId("lastread"),
+ {cfi: "", page: 0, total: total});
+
}
}
@@ -103,9 +111,15 @@ function mark_as_read() {
var total = window.book.pagination.totalPages;
var lastCfi = book.pagination.cfiFromPage(total);
- $.post("backend.php", { op: "storelastread", page: total, cfi: lastCfi, id: $.urlParam("id") }, function(data) {
- $(".lastread_input").val(data.page);
- });
+ if (navigator.onLine) {
+ $.post("backend.php", { op: "storelastread", page: total, cfi: lastCfi, id: $.urlParam("id") }, function(data) {
+ $(".lastread_input").val(data.page);
+ });
+ }
+
+ localforage.setItem(cacheId("lastread"),
+ {cfi: lastCfi, page: total, total: total});
+
}
}
@@ -115,7 +129,7 @@ function save_and_close() {
var currentCfi = book.getCurrentLocationCfi();
var totalPages = book.pagination.totalPages;
- localforage.setItem("epube-book." + $.urlParam("b") + ".lastread",
+ localforage.setItem(cacheId("lastread"),
{cfi: currentCfi, page: currentPage, total: totalPages});
$.post("backend.php", { op: "storelastread", id: $.urlParam("id"), page: currentPage,
diff --git a/read.html b/read.html
index aafbc96..040a363 100644
--- a/read.html
+++ b/read.html
@@ -372,7 +372,12 @@
if (navigator.onLine) {
$.post("backend.php", { op: "getlastread", id: $.urlParam("id") }, function(data) {
- if (navigator.onLine && data && data.cfi) {
+ console.log(data);
+
+ if (navigator.onLine && data) {
+ localforage.setItem(cacheId("lastread"),
+ {cfi: data.cfi, page: data.page, total: data.total});
+
book.gotoCfi(data.cfi);
} else {
localforage.getItem(cacheId("lastread")).then(function(item) {