aboutsummaryrefslogtreecommitdiffhomepage
path: root/ui
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-06-29 20:29:04 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-06-29 20:29:04 -0700
commit77947282e4d18c6396bf82bf12ea29da382d37af (patch)
treeaba11669ba7ea477c34ab8442707b01e3c133f7e /ui
parent0b0f4751fa250dfba49d941bc5d3670bc9629354 (diff)
Make sure we always get the pagination in unread mode
Diffstat (limited to 'ui')
-rw-r--r--ui/entry_unread.go14
-rw-r--r--ui/static/js.go7
-rw-r--r--ui/static/js/app.js7
3 files changed, 16 insertions, 12 deletions
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");
}
}