From bc5695b8703704c5a540c515fa754f6b53428fcb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Marseault?=
<22910497+Larsluph@users.noreply.github.com>
Date: Thu, 16 Feb 2023 12:36:22 +0100
Subject: [PATCH] perf: Add RSS unread filter (#657) @Larsluph
---
src/components/Modals/SearchModal/SearchModal.vue | 2 +-
src/lang/en.json | 2 ++
src/lang/fr.json | 2 ++
src/views/RssArticles.vue | 12 ++++++++----
4 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/src/components/Modals/SearchModal/SearchModal.vue b/src/components/Modals/SearchModal/SearchModal.vue
index 88a06648..2a027ec1 100644
--- a/src/components/Modals/SearchModal/SearchModal.vue
+++ b/src/components/Modals/SearchModal/SearchModal.vue
@@ -37,7 +37,7 @@
:mobile-breakpoint="0"
>
-
+
diff --git a/src/lang/en.json b/src/lang/en.json
index 2178b4af..d4d88cf6 100644
--- a/src/lang/en.json
+++ b/src/lang/en.json
@@ -49,6 +49,7 @@
"of": "of",
"yes": "yes",
"no": "no",
+ "filter": "Filter",
"dashboard": {
"tooltips": {
"toggleSearch": "Toggle Search Filter",
@@ -143,6 +144,7 @@
},
"rss": {
"title": "RSS Articles",
+ "filterRead": "Unread articles only",
"columnTitle": {
"feedName": "Feed Name",
"author": "Author",
diff --git a/src/lang/fr.json b/src/lang/fr.json
index 7382b226..74ad8395 100644
--- a/src/lang/fr.json
+++ b/src/lang/fr.json
@@ -46,6 +46,7 @@
"then": "Alors",
"yes": "oui",
"no": "non",
+ "filter": "Filtre",
"dashboard": {
"tooltips": {
"toggleSearch": "Rechercher un torrent",
@@ -139,6 +140,7 @@
},
"rss": {
"title": "Articles RSS",
+ "filterUnread": "Articles non-lu uniquement",
"columnTitle": {
"feedName": "Nom du Flux",
"author": "Auteur",
diff --git a/src/views/RssArticles.vue b/src/views/RssArticles.vue
index c47996a9..18afa9b9 100644
--- a/src/views/RssArticles.vue
+++ b/src/views/RssArticles.vue
@@ -28,7 +28,10 @@
:item-class="getRowStyle"
>
-
+
+
+
+
@@ -76,6 +79,7 @@ export default defineComponent({
{ text: this.$t('modals.rss.columnTitle.actions'), value: 'actions', sortable: false }
],
filter: '',
+ filterUnread: false,
sortBy: 'parsedDate',
reverse: true,
mdiEmailOpen,
@@ -99,7 +103,7 @@ export default defineComponent({
;(this.rss as RssState).feeds.forEach((feed: Feed) => {
feed.articles && articles.push(...feed.articles.map(article => ({ feedName: feed.name, parsedDate: new Date(article.date), ...article })))
})
- return articles
+ return articles.filter(article => (this.filterUnread ? !article.isRead : true))
}
},
methods: {
@@ -107,7 +111,8 @@ export default defineComponent({
this.$router.back()
},
customFilter(value: string, query: string, item?: any): boolean {
- return (item as FeedArticle).title.toLowerCase().indexOf(query.toLowerCase()) !== -1
+ const article = item as FeedArticle
+ return article.title.toLowerCase().indexOf(query.toLowerCase()) !== -1
},
getRowStyle(item: FeedArticle) {
return item.isRead ? 'rss-read' : 'rss-unread'
@@ -135,7 +140,6 @@ export default defineComponent({
.rss-actions {
display: flex;
flex-direction: row;
- /*column-gap: 5px;*/
}