diff --git a/src/boot/after_store.js b/src/boot/after_store.js
index 5693dcc65a..c4126e4c84 100644
--- a/src/boot/after_store.js
+++ b/src/boot/after_store.js
@@ -59,6 +59,7 @@ const afterStoreSetup = ({ store, i18n }) => {
copyInstanceOption('background')
copyInstanceOption('hidePostStats')
copyInstanceOption('hideUserStats')
+ copyInstanceOption('hideFilteredStatuses')
copyInstanceOption('logo')
store.dispatch('setInstanceOption', {
diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js
index 8d1384855e..257eb691f5 100644
--- a/src/components/settings/settings.js
+++ b/src/components/settings/settings.js
@@ -27,6 +27,11 @@ const settings = {
: user.hideUserStats,
hideUserStatsDefault: this.$t('settings.values.' + instance.hideUserStats),
+ hideFilteredStatusesLocal: typeof user.hideFilteredStatuses === 'undefined'
+ ? instance.hideFilteredStatuses
+ : user.hideFilteredStatuses,
+ hideFilteredStatusesDefault: this.$t('settings.values.' + instance.hideFilteredStatuses),
+
notificationVisibilityLocal: user.notificationVisibility,
replyVisibilityLocal: user.replyVisibility,
loopVideoLocal: user.loopVideo,
@@ -96,6 +101,9 @@ const settings = {
hideUserStatsLocal (value) {
this.$store.dispatch('setOption', { name: 'hideUserStats', value })
},
+ hideFilteredStatusesLocal (value) {
+ this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })
+ },
hideNsfwLocal (value) {
this.$store.dispatch('setOption', { name: 'hideNsfw', value })
},
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index 9953780f23..2fa2c89ca4 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -205,7 +205,6 @@
-
{{$t('settings.replies_in_timeline')}}
@@ -232,11 +231,18 @@
-
{{$t('settings.filtering_explanation')}}
-
+
+
{{$t('settings.filtering_explanation')}}
+
+
+
+
+
+
-
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 65ddcb9f65..3403fd1295 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -110,6 +110,11 @@ const Status = {
return hits
},
muted () { return !this.unmuted && (this.status.user.muted || this.muteWordHits.length > 0) },
+ hideFilteredStatuses () {
+ return typeof this.$store.state.config.hideFilteredStatuses === 'undefined'
+ ? this.$store.state.instance.hideFilteredStatuses
+ : this.$store.state.config.hideFilteredStatuses
+ },
isFocused () {
// retweet or root of an expanded conversation
if (this.focused) {
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 9986107f7a..5e7fa6c5b3 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/src/i18n/en.json b/src/i18n/en.json
index ac7cc2a7ca..6820203b2f 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -139,6 +139,7 @@
"use_one_click_nsfw": "Open NSFW attachments with just one click",
"hide_post_stats": "Hide post statistics (e.g. the number of favorites)",
"hide_user_stats": "Hide user statistics (e.g. the number of followers)",
+ "hide_filtered_statuses": "Hide filtered statuses",
"import_followers_from_a_csv_file": "Import follows from a csv file",
"import_theme": "Load preset",
"inputRadius": "Input fields",
diff --git a/src/modules/instance.js b/src/modules/instance.js
index 4ad418738e..ebc7732a62 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -21,6 +21,7 @@ const defaultState = {
collapseMessageWithSubject: false,
hidePostStats: false,
hideUserStats: false,
+ hideFilteredStatuses: true,
disableChat: false,
scopeCopy: true,
subjectLineBehavior: 'email',