diff options
author | Andrew Dolgov <[email protected]> | 2017-08-06 10:35:52 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2017-08-06 10:35:52 +0300 |
commit | 8c5082e7dc82b620754ec189bbfac51e5b68e93b (patch) | |
tree | 1038ea9a29ebcffcd4e0c5adf796b9c34f77b541 | |
parent | ec0de2c86ec21460bcdc06b5238f181ca123b21b (diff) |
better logic for initial last read page selection
-rw-r--r-- | read.html | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -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); + } }); } |