diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js
index 3345cb0c9..5d621bc67 100644
--- a/src/components/settings_modal/tabs/filtering_tab.js
+++ b/src/components/settings_modal/tabs/filtering_tab.js
@@ -95,6 +95,12 @@ const FilteringTab = {
),
muteFiltersDraft () {
return Object.entries(this.muteFiltersDraftObject)
+ },
+ muteFiltersExpired () {
+ const now = Date.now()
+ return Object
+ .entries(this.muteFiltersDraftObject)
+ .filter(([, { expires }]) => expires != null && expires <= now)
}
},
methods: {
@@ -164,6 +170,14 @@ const FilteringTab = {
this.unsetPreference({ path: 'simple.muteFilters.' + id , value: null })
this.pushServerSideStorage()
},
+ purgeExpiredFilters () {
+ this.muteFiltersExpired.forEach(([id]) => {
+ console.log(id)
+ delete this.muteFiltersDraftObject[id]
+ this.unsetPreference({ path: 'simple.muteFilters.' + id , value: null })
+ })
+ this.pushServerSideStorage()
+ },
updateFilter(id, field, value) {
const filter = { ...this.muteFiltersDraftObject[id] }
if (field === 'expires-never') {
diff --git a/src/components/settings_modal/tabs/filtering_tab.scss b/src/components/settings_modal/tabs/filtering_tab.scss
index 3f3fa3b58..29ec8e280 100644
--- a/src/components/settings_modal/tabs/filtering_tab.scss
+++ b/src/components/settings_modal/tabs/filtering_tab.scss
@@ -63,8 +63,18 @@
justify-content: end;
}
- .total {
- text-align: center;
+ .muteFiltersActions,
+ .muteFiltersActionsBottom {
+ display: grid;
+ align-items: baseline;
+ grid-auto-flow: column;
+ grid-template-columns: 1fr;
+ grid-gap: 0.5em;
+ margin: 0.5em 0;
+
+ .total {
+ flex: 1;
+ }
}
}
diff --git a/src/components/settings_modal/tabs/filtering_tab.vue b/src/components/settings_modal/tabs/filtering_tab.vue
index 968a7a0e7..703a0c65e 100644
--- a/src/components/settings_modal/tabs/filtering_tab.vue
+++ b/src/components/settings_modal/tabs/filtering_tab.vue
@@ -119,182 +119,11 @@
{{ $t('settings.mute_sensitive_posts') }}
-
-
-
-
- {{ ' ' }}
-
-
-
-
- {{ $t('settings.filter.hide') }}
-
- {{ ' ' }}
-
- {{ $t('settings.enabled') }}
-
-
-
-
-
-
-
-
- {{ ' ' }}
-
-
-
-
- {{ ' ' }}
-
-
- {{ ' ' }}
-
- {{ $t('settings.filter.never_expires') }}
-
-
- {{ $t('settings.filter.expired') }}
-
-
-
-
- {{ $t('settings.filter.regexp_error') }}
-
-
-
-
-
-
-
-
-
+
+ {{ $t('settings.filter.custom_filters') }}
+
- {{ $t('settings.filter.count', { count: muteFiltersDraft.length }) }}
+ {{ $t('settings.filter.total_count', { count: muteFiltersDraft.length }) }}
+
+
+
+
+
+ {{ ' ' }}
+
+
+ {{ $t('settings.filter.expired') }}
+
+
+
+
+ {{ $t('settings.filter.hide') }}
+
+ {{ ' ' }}
+
+ {{ $t('settings.enabled') }}
+
+
+
+
+
+
+
+
+ {{ ' ' }}
+
+
+
+
+ {{ ' ' }}
+
+
+ {{ ' ' }}
+
+ {{ $t('settings.filter.never_expires') }}
+
+
+
+
+ {{ $t('settings.filter.regexp_error') }}
+
+
+
+
+
+
+
+
-
+
+
+ {{ $t('settings.filter.expired_count', { count: muteFiltersExpired.length }) }}
+
+
+
+
diff --git a/src/i18n/en.json b/src/i18n/en.json
index f5f451467..01de88223 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -432,7 +432,10 @@
"export": "Export",
"regexp_error": "Invalid Regular Expression",
"never_expires": "Never",
- "count": "{count} filter|{count} filters",
+ "total_count": "Total {count} custom filter|Total {count} custom filters",
+ "expired_count": "{count} expired filter|{count} expired filters",
+ "custom_filters": "Custom filters",
+ "purge_expired": "Remove expired filters",
"import_failure": "The selected file is not a supported Pleroma filter.",
"help": {
"word": "Simple and RegExp filters test against post's content and subject.",