4
0
Эх сурвалжийг харах

Add mark as read/unread link on list items

Frédéric Guillot 8 жил өмнө
parent
commit
6302c3b219

+ 12 - 5
locale/translations.go

@@ -1,5 +1,5 @@
 // Code generated by go generate; DO NOT EDIT.
-// 2018-01-18 00:53:55.957312 +0100 CET m=+0.014632776
+// 2018-01-18 20:15:20.477741406 -0800 PST m=+0.057220191
 
 package locale
 
@@ -208,7 +208,7 @@ var translations = map[string]string{
     "Flush history": "Verlauf leeren",
     "Site URL": "Webseite-URL",
     "Feed URL": "Feed-URL",
-    "Logged as": "Angemeldet als",
+    "Logged as %s": "Angemeldet als %s",
     "Unread Items": "Ungelesen"
 }
 `,
@@ -421,13 +421,20 @@ var translations = map[string]string{
     "There is already someone associated with this provider!": "Il y a déjà quelqu'un d'associé avec ce provider !",
     "There is already someone else with the same Fever username!": "Il y a déjà quelqu'un d'autre avec le même nom d'utilisateur Fever !",
     "Mark all as read": "Tout marquer comme lu",
-    "This feed is empty": "Cet abonnement est vide"
+    "This feed is empty": "Cet abonnement est vide",
+    "Flush history": "Supprimer l'historique",
+    "Site URL": "URL du site web",
+    "Feed URL": "URL du flux",
+    "Logged as %s": "Connecté en tant que %s",
+    "Unread Items": "Éléments non lus",
+    "Change entry status": "Changer le statut de l'élément",
+    "Read": "Lu"
 }
 `,
 }
 
 var translationsChecksums = map[string]string{
-	"de_DE": "a6f658b6e10f0a4b581d35050b01f03aa81d3a1d69d458c57f958b8f2bcb4af8",
+	"de_DE": "4489570ade4480a3b0ca8f0e3b48b72271593d16a2aee5260f4d33b006a2385c",
 	"en_US": "6fe95384260941e8a5a3c695a655a932e0a8a6a572c1e45cb2b1ae8baa01b897",
-	"fr_FR": "888baaeba8cee020f0cf77db7bad9960e9b640277d042029cafb41e72e13566e",
+	"fr_FR": "776658a9a09c49d25f1f259fea794b48c4fa39b92024318d0f223bafb9164aad",
 }

+ 1 - 1
locale/translations/de_DE.json

@@ -202,6 +202,6 @@
     "Flush history": "Verlauf leeren",
     "Site URL": "Webseite-URL",
     "Feed URL": "Feed-URL",
-    "Logged as": "Angemeldet als",
+    "Logged as %s": "Angemeldet als %s",
     "Unread Items": "Ungelesen"
 }

+ 8 - 1
locale/translations/fr_FR.json

@@ -197,5 +197,12 @@
     "There is already someone associated with this provider!": "Il y a déjà quelqu'un d'associé avec ce provider !",
     "There is already someone else with the same Fever username!": "Il y a déjà quelqu'un d'autre avec le même nom d'utilisateur Fever !",
     "Mark all as read": "Tout marquer comme lu",
-    "This feed is empty": "Cet abonnement est vide"
+    "This feed is empty": "Cet abonnement est vide",
+    "Flush history": "Supprimer l'historique",
+    "Site URL": "URL du site web",
+    "Feed URL": "URL du flux",
+    "Logged as %s": "Connecté en tant que %s",
+    "Unread Items": "Éléments non lus",
+    "Change entry status": "Changer le statut de l'élément",
+    "Read": "Lu"
 }

+ 49 - 4
template/common.go

@@ -1,5 +1,5 @@
 // Code generated by go generate; DO NOT EDIT.
-// 2018-01-02 21:59:10.101985953 -0800 PST m=+0.029361282
+// 2018-01-18 20:15:20.47432327 -0800 PST m=+0.053802055
 
 package template
 
@@ -22,6 +22,49 @@ var templateCommonMap = map[string]string{
         {{ end }}
     </div>
 </div>
+{{ end }}`,
+	"item_meta": `{{ define "item_meta" }}
+<div class="item-meta">
+    <ul>
+        <li>
+            <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
+        </li>
+        <li>
+            <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
+        </li>
+        <li>
+            <a href="#"
+                title="{{ t "Save this article" }}"
+                data-save-entry="true"
+                data-save-url="{{ route "saveEntry" "entryID" .ID }}"
+                data-label-loading="{{ t "Saving..." }}"
+                data-label-done="{{ t "Done!" }}"
+                >{{ t "Save" }}</a>
+        </li>
+        <li>
+            <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
+        </li>
+        <li>
+            <a href="#"
+                data-toggle-bookmark="true"
+                data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
+                data-label-loading="{{ t "Saving..." }}"
+                data-label-star="☆ {{ t "Star" }}"
+                data-label-unstar="★ {{ t "Unstar" }}"
+                data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
+                >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
+        </li>
+        <li>
+            <a href="#"
+                title="{{ t "Change entry status" }}"
+                data-toggle-status="true"
+                data-label-read="✔ {{ t "Read" }}"
+                data-label-unread="✘ {{ t "Unread" }}"
+                data-value="{{ if eq .Status "read" }}read{{ else }}unread{{ end }}"
+                >{{ if eq .Status "read" }}✘ {{ t "Unread" }}{{ else }}✔ {{ t "Read" }}{{ end }}</a>
+        </li>
+    </ul>
+</div>
 {{ end }}`,
 	"layout": `{{ define "base" }}
 <!DOCTYPE html>
@@ -86,7 +129,7 @@ var templateCommonMap = map[string]string{
                     <a href="{{ route "settings" }}" data-page="settings">{{ t "Settings" }}</a>
                 </li>
                 <li>
-                    <a href="{{ route "logout" }}" title="Logged as {{ .user.Username }}">{{ t "Logout" }}</a>
+                    <a href="{{ route "logout" }}" title="{{ t "Logged as %s" .user.Username }}">{{ t "Logout" }}</a>
                 </li>
             </ul>
         </nav>
@@ -146,7 +189,8 @@ var templateCommonMap = map[string]string{
     </template>
 </body>
 </html>
-{{ end }}`,
+{{ end }}
+`,
 	"pagination": `{{ define "pagination" }}
 <div class="pagination">
     <div class="pagination-prev">
@@ -171,6 +215,7 @@ var templateCommonMap = map[string]string{
 
 var templateCommonMapChecksums = map[string]string{
 	"entry_pagination": "f1465fa70f585ae8043b200ec9de5bf437ffbb0c19fb7aefc015c3555614ee27",
-	"layout":           "83786d9e657a17cb531007b5639dc021b7cb2bff1a19162769b3a961a22e5087",
+	"item_meta":        "5f8650332fcc24dd580cea3eb8e7d8ecbb0d794607185039d1f4def8db6a7460",
+	"layout":           "c7565e2cf904612e236bc1d7167c6c124ffe5d27348608eb5c2336606f266896",
 	"pagination":       "6ff462c2b2a53bc5448b651da017f40a39f1d4f16cef4b2f09784f0797286924",
 }

+ 1 - 32
template/html/category_entries.html

@@ -27,38 +27,7 @@
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>

+ 43 - 0
template/html/common/item_meta.html

@@ -0,0 +1,43 @@
+{{ define "item_meta" }}
+<div class="item-meta">
+    <ul>
+        <li>
+            <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
+        </li>
+        <li>
+            <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
+        </li>
+        <li>
+            <a href="#"
+                title="{{ t "Save this article" }}"
+                data-save-entry="true"
+                data-save-url="{{ route "saveEntry" "entryID" .ID }}"
+                data-label-loading="{{ t "Saving..." }}"
+                data-label-done="{{ t "Done!" }}"
+                >{{ t "Save" }}</a>
+        </li>
+        <li>
+            <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
+        </li>
+        <li>
+            <a href="#"
+                data-toggle-bookmark="true"
+                data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
+                data-label-loading="{{ t "Saving..." }}"
+                data-label-star="☆ {{ t "Star" }}"
+                data-label-unstar="★ {{ t "Unstar" }}"
+                data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
+                >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
+        </li>
+        <li>
+            <a href="#"
+                title="{{ t "Change entry status" }}"
+                data-toggle-status="true"
+                data-label-read="✔ {{ t "Read" }}"
+                data-label-unread="✘ {{ t "Unread" }}"
+                data-value="{{ if eq .Status "read" }}read{{ else }}unread{{ end }}"
+                >{{ if eq .Status "read" }}✘ {{ t "Unread" }}{{ else }}✔ {{ t "Read" }}{{ end }}</a>
+        </li>
+    </ul>
+</div>
+{{ end }}

+ 1 - 1
template/html/common/layout.html

@@ -61,7 +61,7 @@
                     <a href="{{ route "settings" }}" data-page="settings">{{ t "Settings" }}</a>
                 </li>
                 <li>
-                    <a href="{{ route "logout" }}" title="{{ t "Logged as" }} {{ .user.Username }}">{{ t "Logout" }}</a>
+                    <a href="{{ route "logout" }}" title="{{ t "Logged as %s" .user.Username }}">{{ t "Logout" }}</a>
                 </li>
             </ul>
         </nav>

+ 1 - 32
template/html/feed_entries.html

@@ -38,38 +38,7 @@
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>

+ 1 - 32
template/html/history.html

@@ -27,38 +27,7 @@
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>

+ 1 - 32
template/html/starred.html

@@ -20,38 +20,7 @@
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>

+ 1 - 32
template/html/unread.html

@@ -30,38 +30,7 @@
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>

+ 11 - 166
template/views.go

@@ -1,5 +1,5 @@
 // Code generated by go generate; DO NOT EDIT.
-// 2018-01-05 18:05:45.591353454 -0800 PST m=+0.022613760
+// 2018-01-18 20:15:20.459420484 -0800 PST m=+0.038899269
 
 package template
 
@@ -179,38 +179,7 @@ var templateViewsMap = map[string]string{
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>
@@ -638,38 +607,7 @@ var templateViewsMap = map[string]string{
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>
@@ -785,38 +723,7 @@ var templateViewsMap = map[string]string{
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>
@@ -1161,38 +1068,7 @@ var templateViewsMap = map[string]string{
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>
@@ -1233,38 +1109,7 @@ var templateViewsMap = map[string]string{
                 </span>
                 <span class="category"><a href="{{ route "categoryEntries" "categoryID" .Feed.Category.ID }}">{{ .Feed.Category.Title }}</a></span>
             </div>
-            <div class="item-meta">
-                <ul>
-                    <li>
-                        <a href="{{ route "feedEntries" "feedID" .Feed.ID }}" title="{{ .Feed.Title }}">{{ domain .Feed.SiteURL }}</a>
-                    </li>
-                    <li>
-                        <time datetime="{{ isodate .Date }}" title="{{ isodate .Date }}">{{ elapsed .Date }}</time>
-                    </li>
-                    <li>
-                        <a href="#"
-                            title="{{ t "Save this article" }}"
-                            data-save-entry="true"
-                            data-save-url="{{ route "saveEntry" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-done="{{ t "Done!" }}"
-                            >{{ t "Save" }}</a>
-                    </li>
-                    <li>
-                        <a href="{{ .URL }}" target="_blank" rel="noopener noreferrer" referrerpolicy="no-referrer" data-original-link="true">{{ t "Original" }}</a>
-                    </li>
-                    <li>
-                        <a href="#"
-                            data-toggle-bookmark="true"
-                            data-bookmark-url="{{ route "toggleBookmark" "entryID" .ID }}"
-                            data-label-loading="{{ t "Saving..." }}"
-                            data-label-star="☆ {{ t "Star" }}"
-                            data-label-unstar="★ {{ t "Unstar" }}"
-                            data-value="{{ if .Starred }}star{{ else }}unstar{{ end }}"
-                            >{{ if .Starred }}★ {{ t "Unstar" }}{{ else }}☆ {{ t "Star" }}{{ end }}</a>
-                    </li>
-                </ul>
-            </div>
+            {{ template "item_meta" . }}
         </article>
         {{ end }}
     </div>
@@ -1339,7 +1184,7 @@ var templateViewsMapChecksums = map[string]string{
 	"about":               "ad2fb778fc73c39b733b3f81b13e5c7d689b041fadd24ee2d4577f545aa788ad",
 	"add_subscription":    "053c920b0d7e109ea19dce6a448e304ce720db8633588ea04db16677f7209a7b",
 	"categories":          "ca1280cd157bb527d4fc907da67b05a8347378f6dce965b9389d4bcdf3600a11",
-	"category_entries":    "ce59529666520b8363c9588ce2c437de5a3f6d91941e5c46be25ca08f6900364",
+	"category_entries":    "a92bd528d1162e7af4972f7ad25feddf7ceb17164db593805caf3d363ff32aac",
 	"choose_subscription": "a325f9c976ca2b2dc148e25c8fef0cf6ccab0e04e86e604e7812bb18dc4cdde1",
 	"create_category":     "2b82af5d2dcd67898dc5daa57a6461e6ff8121a6089b2a2a1be909f35e4a2275",
 	"create_user":         "45e226df757126d5fe7c464e295e9a34f07952cfdb71e31e49839850d35af139",
@@ -1347,15 +1192,15 @@ var templateViewsMapChecksums = map[string]string{
 	"edit_feed":           "30ff6ee5526b8beb9b457526b77ede55938f53eb279b1acc719ce896359e2ed8",
 	"edit_user":           "82d9749d76ddbd2352816d813c4b1f6d92f2222de678b4afe5821090246735c7",
 	"entry":               "6b4405e0c8e4a7d31874659f8835f4e43e01dc3c20686091517ac750196dd70f",
-	"feed_entries":        "6b4a7d52b2590a7c54b58ed3180bd3bb5d869ceaecc80e3575339a9c351309c6",
+	"feed_entries":        "3a7b4d942d9ac9da7df5c09950fbadaa0ff564696953c4f1c302d955696cc2ee",
 	"feeds":               "65b0a47c4438810b9d51c60f3f3b2519690e56ff74029e6296c68626b83a470b",
-	"history":             "abc7ea29f7d54f28f73fe14979bbd03dbc41fa6a7c86f95f56d6e94f7b09b9ba",
+	"history":             "d2476fd727e4f53428b5ed1f3f9423063583337ec8cfe1dd9c931fcb03852a20",
 	"import":              "73b5112e20bfd232bf73334544186ea419505936bc237d481517a8622901878f",
 	"integrations":        "3c14d7de904911aad7f3ebec6d1a20b50843287f58125c526e167f429f3d455d",
 	"login":               "7d83c3067c02f1f6aafdd8816c7f97a4eb5a5a4bdaaaa4cc1e2fbb9c17ea65e8",
 	"sessions":            "9a3609c52b071a280b85fd886f15d4b91c76bb0ab93a99ad132c695a216ac5cf",
 	"settings":            "ea2505b9d0a6d6bb594dba87a92079de19baa6d494f0651693a7685489fb7de9",
-	"starred":             "33dd40d1a24739e9d05f9cc4b66497cfdb8c86a7abb209a66ca65c2fbafc7d87",
-	"unread":              "690bac794c4d21086f1a03588753088d7c26385de9a0c2723add6c7905b63f5e",
+	"starred":             "121b761ce218de472ebf70879c1aa2fe3b9ae8981c11f1ed53a355e34049b269",
+	"unread":              "17335b21dc5fb79207da317a8e8a6685a122bc94c323662cbda7cfdbf73dd2f9",
 	"users":               "44677e28bb5347799ed0020c90ec785aadec4b1454446d92411cfdaf6e32110b",
 }

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 7 - 4
ui/static/js.go


+ 35 - 7
ui/static/js/app.js

@@ -35,6 +35,16 @@ class DomHelper {
 
         return result;
     }
+
+    static findParent(element, selector) {
+        for (; element && element !== document; element = element.parentNode) {
+            if (element.classList.contains(selector)) {
+                return element;
+            }
+        }
+
+        return null;
+    }
 }
 
 class TouchHandler {
@@ -68,13 +78,7 @@ class TouchHandler {
             return element;
         }
 
-        for (; element && element !== document; element = element.parentNode) {
-            if (element.classList.contains("touch-item")) {
-                return element;
-            }
-        }
-
-        return null;
+        return DomHelper.findParent(element, "touch-item");
     }
 
     onTouchStart(event) {
@@ -324,11 +328,26 @@ class EntryHandler {
                     UnreadCounterHandler.increment(1);
                 }
 
+                let link = element.querySelector("a[data-toggle-status]");
+                if (link) {
+                    this.toggleLinkStatus(link);
+                }
+
                 break;
             }
         }
     }
 
+    static toggleLinkStatus(link) {
+        if (link.dataset.value === "read") {
+            link.innerHTML = link.dataset.labelRead;
+            link.dataset.value = "unread";
+        } else {
+            link.innerHTML = link.dataset.labelUnread;
+            link.dataset.value = "read";
+        }
+    }
+
     static toggleBookmark(element) {
         element.innerHTML = element.dataset.labelLoading;
 
@@ -728,6 +747,15 @@ document.addEventListener("DOMContentLoaded", function() {
         EntryHandler.toggleBookmark(event.target);
     });
 
+    mouseHandler.onClick("a[data-toggle-status]", (event) => {
+        event.preventDefault();
+
+        let currentItem = DomHelper.findParent(event.target, "item");
+        if (currentItem) {
+            EntryHandler.toggleEntryStatus(currentItem);
+        }
+    });
+
     mouseHandler.onClick("a[data-fetch-content-entry]", (event) => {
         event.preventDefault();
         EntryHandler.fetchOriginalContent(event.target);

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно