Explorar o código

Improve page reload when showing unread/all entries

- Show only unread entries = refresh current page
- Show all entries = go to next page
Diego Agulló %!s(int64=7) %!d(string=hai) anos
pai
achega
a6068aae1d

+ 8 - 2
template/html/category_entries.html

@@ -6,7 +6,10 @@
     <ul>
     {{ if .entries }}
         <li>
-            <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+            <a href="#" data-on-click="markPageAsRead"
+               data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                {{ t "menu.mark_page_as_read" }}
+            </a>
         </li>
     {{ end }}
     {{ if .showOnlyUnreadEntries }}
@@ -44,7 +47,10 @@
         {{ if .entries }}
         <ul>
             <li>
-                <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+                <a href="#" data-on-click="markPageAsRead"
+                   data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                    {{ t "menu.mark_page_as_read" }}
+                </a>
             </li>
         </ul>
         {{ end }}

+ 8 - 2
template/html/feed_entries.html

@@ -6,7 +6,10 @@
     <ul>
         {{ if .entries }}
         <li>
-            <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+            <a href="#" data-on-click="markPageAsRead"
+               data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                {{ t "menu.mark_page_as_read" }}
+            </a>
         </li>
         {{ end }}
         {{ if .showOnlyUnreadEntries }}
@@ -72,7 +75,10 @@
         {{ if .entries }}
         <ul>
             <li>
-                <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+                <a href="#" data-on-click="markPageAsRead"
+                   data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                    {{ t "menu.mark_page_as_read" }}
+                </a>
             </li>
         </ul>
         {{ end }}

+ 18 - 6
template/views.go

@@ -209,7 +209,10 @@ var templateViewsMap = map[string]string{
     <ul>
     {{ if .entries }}
         <li>
-            <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+            <a href="#" data-on-click="markPageAsRead"
+               data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                {{ t "menu.mark_page_as_read" }}
+            </a>
         </li>
     {{ end }}
     {{ if .showOnlyUnreadEntries }}
@@ -247,7 +250,10 @@ var templateViewsMap = map[string]string{
         {{ if .entries }}
         <ul>
             <li>
-                <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+                <a href="#" data-on-click="markPageAsRead"
+                   data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                    {{ t "menu.mark_page_as_read" }}
+                </a>
             </li>
         </ul>
         {{ end }}
@@ -698,7 +704,10 @@ var templateViewsMap = map[string]string{
     <ul>
         {{ if .entries }}
         <li>
-            <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+            <a href="#" data-on-click="markPageAsRead"
+               data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                {{ t "menu.mark_page_as_read" }}
+            </a>
         </li>
         {{ end }}
         {{ if .showOnlyUnreadEntries }}
@@ -764,7 +773,10 @@ var templateViewsMap = map[string]string{
         {{ if .entries }}
         <ul>
             <li>
-                <a href="#" data-on-click="markPageAsRead">{{ t "menu.mark_page_as_read" }}</a>
+                <a href="#" data-on-click="markPageAsRead"
+                   data-show-only-unread="{{ if .showOnlyUnreadEntries }}1{{ end }}">
+                    {{ t "menu.mark_page_as_read" }}
+                </a>
             </li>
         </ul>
         {{ end }}
@@ -1409,7 +1421,7 @@ var templateViewsMapChecksums = map[string]string{
 	"add_subscription":    "a0f1d2bc02b6adc83dbeae593f74d9b936102cd6dd73302cdbec2137cafdcdd9",
 	"bookmark_entries":    "609f4b2342152fe495a219a32f17a4528b01807d61f53cee0cbebf728be73c42",
 	"categories":          "642ee3cddbd825ee6ab5a77caa0d371096b55de0f1bd4ae3055b8c8a70507d8d",
-	"category_entries":    "07ff798025f8527de5351a89fd5fc51973c1ea6c56710b4f703cbae183fbcbb6",
+	"category_entries":    "8ed501d58fd659c6f505d200f5f92dc2d3f8ed8893c7a8076d05ca54c9adb944",
 	"choose_subscription": "33c04843d7c1b608d034e605e52681822fc6d79bc6b900c04915dd9ebae584e2",
 	"create_category":     "6b22b5ce51abf4e225e23a79f81be09a7fb90acb265e93a8faf9446dff74018d",
 	"create_user":         "1e940be3afefc0a5c6273bbadcddc1e29811e9548e5227ac2adfe697ca5ce081",
@@ -1417,7 +1429,7 @@ var templateViewsMapChecksums = map[string]string{
 	"edit_feed":           "ab30c31a4385a7b16c54baa78bdcb93a57181ed1c5018ce097d7eb50673bb995",
 	"edit_user":           "f4f99412ba771cfca2a2a42778b023b413c5494e9a287053ba8cf380c2865c5f",
 	"entry":               "2ea9fee1ae5513ef1abb5923221c2ef1212e26d3bb651da66069ce8a336cbb7c",
-	"feed_entries":        "f76de17ba8739c94897c3259e72acc82f7b74181125ee78c2873c5e5f20215f3",
+	"feed_entries":        "0b97344b4045058b7154d0c01b85e4afd957c23e7cb2d011451f96baf6233dfc",
 	"feeds":               "31acc253c547a6cce5710d72a6f6b3b396162ecd5e5af295b2cf47c1ff55bd06",
 	"history_entries":     "b65ca1d85615caa7c314a33f1cb997aa3477a79e66b9894b2fd387271ad467d2",
 	"import":              "8349e47a783bb40d8e9248b4771656e5f006185e11079e1c4680dd52633420ed",

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
ui/static/js.go


+ 7 - 2
ui/static/js/bootstrap.js

@@ -20,7 +20,10 @@ document.addEventListener("DOMContentLoaded", function() {
     keyboardHandler.on("o", () => navHandler.openSelectedItem());
     keyboardHandler.on("v", () => navHandler.openOriginalLink());
     keyboardHandler.on("m", () => navHandler.toggleEntryStatus());
-    keyboardHandler.on("A", () => navHandler.markPageAsRead());
+    keyboardHandler.on("A", () => {
+        let element = document.querySelector("a[data-on-click=markPageAsRead]");
+        navHandler.markPageAsRead(element.dataset.showOnlyUnread || false);
+    });
     keyboardHandler.on("s", () => navHandler.saveEntry());
     keyboardHandler.on("d", () => navHandler.fetchOriginalContent());
     keyboardHandler.on("f", () => navHandler.toggleBookmark());
@@ -57,7 +60,9 @@ document.addEventListener("DOMContentLoaded", function() {
         EntryHandler.fetchOriginalContent(event.target);
     });
 
-    mouseHandler.onClick("a[data-on-click=markPageAsRead]", () => navHandler.markPageAsRead());
+    mouseHandler.onClick("a[data-on-click=markPageAsRead]", (event) => {
+        navHandler.markPageAsRead(event.target.dataset.showOnlyUnread || false);
+    });
 
     mouseHandler.onClick("a[data-confirm]", (event) => {
         (new ConfirmHandler()).handle(event);

+ 6 - 2
ui/static/js/nav_handler.js

@@ -27,7 +27,7 @@ class NavHandler {
         }
     }
 
-    markPageAsRead() {
+    markPageAsRead(showOnlyUnread) {
         let items = DomHelper.getVisibleElements(".items .item");
         let entryIDs = [];
 
@@ -39,7 +39,11 @@ class NavHandler {
         if (entryIDs.length > 0) {
             EntryHandler.updateEntriesStatus(entryIDs, "read", () => {
                 // This callback make sure the Ajax request reach the server before we reload the page.
-                this.goToPage("next", true);
+                if (showOnlyUnread) {
+                    window.location.reload();
+                } else {
+                    this.goToPage("next", true);
+                }
             });
         }
     }

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio