summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2017-08-06 10:35:52 +0300
committerAndrew Dolgov <[email protected]>2017-08-06 10:35:52 +0300
commit8c5082e7dc82b620754ec189bbfac51e5b68e93b (patch)
tree1038ea9a29ebcffcd4e0c5adf796b9c34f77b541
parentec0de2c86ec21460bcdc06b5238f181ca123b21b (diff)
better logic for initial last read page selection
-rw-r--r--read.html17
1 files changed, 8 insertions, 9 deletions
diff --git a/read.html b/read.html
index 20740f3..d9369bb 100644
--- a/read.html
+++ b/read.html
@@ -651,26 +651,25 @@
localforage.setItem(cacheId("pagination"), pageList);
}
- // this might revert progress if server has older position stored
- // because for example this client read further while offline
- // probably need to compare item.page and data.page since those are
- // uniform between devices now
-
localforage.getItem(cacheId("lastread")).then(function(item) {
- console.log('lr local', item.cfi);
+ console.log('lr local', item);
+
+ item = item || {};
- if (item && item.cfi) book.gotoCfi(item.cfi);
+ if (item.cfi) book.gotoCfi(item.cfi);
if (navigator.onLine) {
$.post("backend.php", { op: "getlastread", id: $.urlParam("id") }, function(data) {
- console.log('lr remote', data.cfi);
+ console.log('lr remote', data);
if (navigator.onLine && data) {
localforage.setItem(cacheId("lastread"),
{cfi: data.cfi, page: data.page, total: data.total});
- if (data.cfi && item.cfi != data.cfi) book.gotoCfi(data.cfi);
+ if (item.cfi != data.cfi && (!item.page || data.page > item.page))
+ book.gotoCfi(data.cfi);
+
}
});
}