From 77947282e4d18c6396bf82bf12ea29da382d37af Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Fri, 29 Jun 2018 20:29:04 -0700 Subject: Make sure we always get the pagination in unread mode --- ui/entry_unread.go | 14 +++++++++++++- ui/static/js.go | 7 +++---- ui/static/js/app.js | 7 ------- 3 files changed, 16 insertions(+), 12 deletions(-) (limited to 'ui') diff --git a/ui/entry_unread.go b/ui/entry_unread.go index a599bcc..0b6c001 100644 --- a/ui/entry_unread.go +++ b/ui/entry_unread.go @@ -49,6 +49,16 @@ func (c *Controller) ShowUnreadEntry(w http.ResponseWriter, r *http.Request) { return } + // Make sure we always get the pagination in unread mode even if the page is refreshed. + if entry.Status == model.EntryStatusRead { + err = c.store.SetEntriesStatus(user.ID, []int64{entry.ID}, model.EntryStatusUnread) + if err != nil { + logger.Error("[Controller:ShowUnreadEntry] %v", err) + html.ServerError(w, nil) + return + } + } + entryPaginationBuilder := storage.NewEntryPaginationBuilder(c.store, user.ID, entry.ID, user.EntryDirection) entryPaginationBuilder.WithStatus(model.EntryStatusUnread) prevEntry, nextEntry, err := entryPaginationBuilder.Entries() @@ -86,8 +96,10 @@ func (c *Controller) ShowUnreadEntry(w http.ResponseWriter, r *http.Request) { view.Set("prevEntryRoute", prevEntryRoute) view.Set("menu", "unread") view.Set("user", user) - view.Set("countUnread", c.store.CountUnreadEntries(user.ID)) view.Set("hasSaveEntry", c.store.HasSaveEntry(user.ID)) + // Fetching the counter here avoid to be off by one. + view.Set("countUnread", c.store.CountUnreadEntries(user.ID)) + html.OK(w, view.Render("entry")) } diff --git a/ui/static/js.go b/ui/static/js.go index bc1f439..192bd0e 100644 --- a/ui/static/js.go +++ b/ui/static/js.go @@ -1,5 +1,5 @@ // Code generated by go generate; DO NOT EDIT. -// 2018-06-28 02:11:57.050292961 -0400 EDT m=+0.005178557 +// 2018-06-29 20:26:34.577543639 -0700 PDT m=+0.034529605 package static @@ -74,8 +74,7 @@ let currentItem=document.querySelector(".current-item");if(currentItem!==null){t toggleBookmarkLink(parent){let bookmarkLink=parent.querySelector("a[data-toggle-bookmark]");if(bookmarkLink){EntryHandler.toggleBookmark(bookmarkLink);}} openOriginalLink(){let entryLink=document.querySelector(".entry h1 a");if(entryLink!==null){DomHelper.openNewTab(entryLink.getAttribute("href"));return;} let currentItemOriginalLink=document.querySelector(".current-item a[data-original-link]");if(currentItemOriginalLink!==null){DomHelper.openNewTab(currentItemOriginalLink.getAttribute("href"));let currentItem=document.querySelector(".current-item");this.goToNextListItem();EntryHandler.markEntryAsRead(currentItem);}} -openSelectedItem(){let currentItemLink=document.querySelector(".current-item .item-title a");if(currentItemLink!==null){let currentItemOriginalLink=document.querySelector(".current-item a[data-original-link]");if(currentItemOriginalLink!==null){let currentItem=document.querySelector(".current-item");EntryHandler.markEntryAsRead(currentItem);} -window.location.href=currentItemLink.getAttribute("href");}} +openSelectedItem(){let currentItemLink=document.querySelector(".current-item .item-title a");if(currentItemLink!==null){window.location.href=currentItemLink.getAttribute("href");}} goToPage(page,fallbackSelf){let element=document.querySelector("a[data-page="+page+"]");if(element){document.location.href=element.href;}else if(fallbackSelf){window.location.reload();}} goToPrevious(){if(this.isListView()){this.goToPreviousListItem();}else{this.goToPage("previous");}} goToNext(){if(this.isListView()){this.goToNextListItem();}else{this.goToPage("next");}} @@ -92,5 +91,5 @@ document.addEventListener("DOMContentLoaded",function(){FormHandler.handleSubmit } var JavascriptChecksums = map[string]string{ - "app": "803826d0f7d801ed07437712668d00247112b6f85eae5b1b46f3ac9f95fe2b18", + "app": "1cbc164e7e61cb058564c41d63530cfb8936c63b061b0381f7672f8010be70dd", } diff --git a/ui/static/js/app.js b/ui/static/js/app.js index 0933684..7869d47 100644 --- a/ui/static/js/app.js +++ b/ui/static/js/app.js @@ -637,13 +637,6 @@ class NavHandler { openSelectedItem() { let currentItemLink = document.querySelector(".current-item .item-title a"); if (currentItemLink !== null) { - // The following 4 lines ensure that the unread count in the menu is - // updated correctly when users presses "o". - let currentItemOriginalLink = document.querySelector(".current-item a[data-original-link]"); - if (currentItemOriginalLink !== null) { - let currentItem = document.querySelector(".current-item"); - EntryHandler.markEntryAsRead(currentItem); - } window.location.href = currentItemLink.getAttribute("href"); } } -- cgit v1.2.3