diff --git a/internal/template/templates/common/item_meta.html b/internal/template/templates/common/item_meta.html index 8d48c98346b..7208999d13d 100644 --- a/internal/template/templates/common/item_meta.html +++ b/internal/template/templates/common/item_meta.html @@ -28,6 +28,16 @@ data-value="{{ if eq .entry.Status "read" }}read{{ else }}unread{{ end }}" >{{ if eq .entry.Status "read" }}{{ icon "unread" }}{{ else }}{{ icon "read" }}{{ end }}{{ if eq .entry.Status "read" }}{{ t "entry.status.unread" }}{{ else }}{{ t "entry.status.read" }}{{ end }} +
  • + {{ icon "mark-all-as-read" }}Mark above as read +
  • 0) { + updateEntriesStatus(entryIDs, "read", () => { + // Refresh the page if user wants to hide unread + let element = document.querySelector("a[data-action=markPageAsRead]"); + let showOnlyUnread = false; + if (element) { + showOnlyUnread = element.dataset.showOnlyUnread || false; + } + + if (showOnlyUnread) { + window.location.href = window.location.href; + } + }); + } +} + // Mark a single entry as read. function markEntryAsRead(element) { if (element.classList.contains("item-status-unread")) { diff --git a/internal/ui/static/js/bootstrap.js b/internal/ui/static/js/bootstrap.js index 9f8b9364f80..43ca34dc636 100644 --- a/internal/ui/static/js/bootstrap.js +++ b/internal/ui/static/js/bootstrap.js @@ -79,6 +79,13 @@ document.addEventListener("DOMContentLoaded", () => { } } + onClick("a[data-action=markAboveAsRead]", (event) => { + const entry = findEntry(event.target); + + if (entry) { + markAboveAsRead(entry); + } + }); onClick("a[data-save-entry]", (event) => handleSaveEntry(event.target)); onClick("a[data-toggle-bookmark]", (event) => handleBookmark(event.target)); onClick("a[data-fetch-content-entry]", () => handleFetchOriginalContent());