From 8c5082e7dc82b620754ec189bbfac51e5b68e93b Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 6 Aug 2017 10:35:52 +0300 Subject: better logic for initial last read page selection --- read.html | 17 ++++++++--------- 1 file 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); + } }); } -- cgit v1.2.3