aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjasper <jasper92341@hotmail.com>2019-02-06 10:18:13 -0800
committerjasper <jasper92341@hotmail.com>2019-02-06 10:18:13 -0800
commita57f8bdd68ae52b4e5725fe0358dc8c7567c81ac (patch)
treea504a65ce9e908ebb173189fe0b5dcc098388410 /src
parent6a867f6ae38b4bc3981fb6ca402c196a0967c49e (diff)
Add option to hide filtered statuses
Diffstat (limited to 'src')
-rw-r--r--src/boot/after_store.js1
-rw-r--r--src/components/settings/settings.js8
-rw-r--r--src/components/settings/settings.vue14
-rw-r--r--src/components/status/status.js5
-rw-r--r--src/components/status/status.vue2
-rw-r--r--src/i18n/en.json1
-rw-r--r--src/modules/instance.js1
7 files changed, 27 insertions, 5 deletions
diff --git a/src/boot/after_store.js b/src/boot/after_store.js
index 5693dcc6..c4126e4c 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 8d138485..257eb691 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 9953780f..2fa2c89c 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -205,7 +205,6 @@
</label>
</li>
</ul>
- </label>
</div>
<div>
{{$t('settings.replies_in_timeline')}}
@@ -232,11 +231,18 @@
</div>
</div>
<div class="setting-item">
- <p>{{$t('settings.filtering_explanation')}}</p>
- <textarea id="muteWords" v-model="muteWordsString"></textarea>
+ <div>
+ <p>{{$t('settings.filtering_explanation')}}</p>
+ <textarea id="muteWords" v-model="muteWordsString"></textarea>
+ </div>
+ <div>
+ <input type="checkbox" id="hideFilteredStatuses" v-model="hideFilteredStatusesLocal">
+ <label for="hideFilteredStatuses">
+ {{$t('settings.hide_filtered_statuses')}} {{$t('settings.instance_default', { value: hideFilteredStatusesDefault })}}
+ </label>
+ </div>
</div>
</div>
-
</tab-switcher>
</keep-alive>
</div>
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 65ddcb9f..3403fd12 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 9986107f..5e7fa6c5 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -1,5 +1,5 @@
<template>
- <div class="status-el" v-if="!hideReply && !deleted" :class="[{ 'status-el_focused': isFocused }, { 'status-conversation': inlineExpanded }]">
+ <div class="status-el" v-if="(!hideReply && !deleted) && !(muted && hideFilteredStatuses)" :class="[{ 'status-el_focused': isFocused }, { 'status-conversation': inlineExpanded }]">
<template v-if="muted && !noReplyLinks">
<div class="media status container muted">
<small>
diff --git a/src/i18n/en.json b/src/i18n/en.json
index ac7cc2a7..6820203b 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 4ad41873..ebc7732a 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',