Merge branch 'settings-and-filtering' into 'develop'
Settings rearrange and filtering improvements See merge request pleroma/pleroma-fe!1394
This commit is contained in:
commit
3cf7f9e3c8
10 changed files with 272 additions and 213 deletions
|
@ -2,7 +2,12 @@
|
||||||
|
|
||||||
// TODO Copypaste from Status, should unify it somehow
|
// TODO Copypaste from Status, should unify it somehow
|
||||||
.Notification {
|
.Notification {
|
||||||
--emoji-size: 14px;
|
border-bottom: 1px solid;
|
||||||
|
border-color: $fallback--border;
|
||||||
|
border-color: var(--border, $fallback--border);
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: break-word;
|
||||||
|
--emoji-size: 14px;
|
||||||
|
|
||||||
&.-muted {
|
&.-muted {
|
||||||
padding: 0.25em 0.6em;
|
padding: 0.25em 0.6em;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<Status
|
<Status
|
||||||
v-if="notification.type === 'mention'"
|
v-if="notification.type === 'mention'"
|
||||||
|
class="Notification"
|
||||||
:compact="true"
|
:compact="true"
|
||||||
:statusoid="notification.status"
|
:statusoid="notification.status"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -37,11 +37,6 @@
|
||||||
|
|
||||||
.notification {
|
.notification {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-bottom: 1px solid;
|
|
||||||
border-color: $fallback--border;
|
|
||||||
border-color: var(--border, $fallback--border);
|
|
||||||
word-wrap: break-word;
|
|
||||||
word-break: break-word;
|
|
||||||
|
|
||||||
&:hover .animated.Avatar {
|
&:hover .animated.Avatar {
|
||||||
canvas {
|
canvas {
|
||||||
|
|
|
@ -1,73 +1,138 @@
|
||||||
<template>
|
<template>
|
||||||
<div :label="$t('settings.filtering')">
|
<div :label="$t('settings.filtering')">
|
||||||
<div class="setting-item">
|
<div class="setting-item">
|
||||||
<div class="select-multiple">
|
<h2>{{ $t('settings.posts') }}</h2>
|
||||||
<span class="label">{{ $t('settings.notification_visibility') }}</span>
|
<ul class="setting-list">
|
||||||
<ul class="option-list">
|
<li>
|
||||||
<li>
|
<BooleanSetting path="hideFilteredStatuses">
|
||||||
<BooleanSetting path="notificationVisibility.likes">
|
{{ $t('settings.hide_filtered_statuses') }}
|
||||||
{{ $t('settings.notification_visibility_likes') }}
|
</BooleanSetting>
|
||||||
</BooleanSetting>
|
<ul
|
||||||
</li>
|
class="setting-list suboptions"
|
||||||
<li>
|
:class="[{disabled: !streaming}]"
|
||||||
<BooleanSetting path="notificationVisibility.repeats">
|
>
|
||||||
{{ $t('settings.notification_visibility_repeats') }}
|
<li>
|
||||||
</BooleanSetting>
|
<BooleanSetting
|
||||||
</li>
|
:disabled="hideFilteredStatuses"
|
||||||
<li>
|
path="hideWordFilteredPosts"
|
||||||
<BooleanSetting path="notificationVisibility.follows">
|
>
|
||||||
{{ $t('settings.notification_visibility_follows') }}
|
{{ $t('settings.hide_wordfiltered_statuses') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="notificationVisibility.mentions">
|
<BooleanSetting
|
||||||
{{ $t('settings.notification_visibility_mentions') }}
|
:disabled="hideFilteredStatuses"
|
||||||
</BooleanSetting>
|
path="hideMutedThreads"
|
||||||
</li>
|
>
|
||||||
<li>
|
{{ $t('settings.hide_muted_threads') }}
|
||||||
<BooleanSetting path="notificationVisibility.moves">
|
</BooleanSetting>
|
||||||
{{ $t('settings.notification_visibility_moves') }}
|
</li>
|
||||||
</BooleanSetting>
|
<li>
|
||||||
</li>
|
<BooleanSetting
|
||||||
<li>
|
:disabled="hideFilteredStatuses"
|
||||||
<BooleanSetting path="notificationVisibility.emojiReactions">
|
path="hideMutedPosts"
|
||||||
{{ $t('settings.notification_visibility_emoji_reactions') }}
|
>
|
||||||
</BooleanSetting>
|
{{ $t('settings.hide_muted_posts') }}
|
||||||
</li>
|
</BooleanSetting>
|
||||||
</ul>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
<ChoiceSetting
|
</li>
|
||||||
id="replyVisibility"
|
<li>
|
||||||
path="replyVisibility"
|
<BooleanSetting path="hidePostStats">
|
||||||
:options="replyVisibilityOptions"
|
{{ $t('settings.hide_post_stats') }}
|
||||||
>
|
</BooleanSetting>
|
||||||
{{ $t('settings.replies_in_timeline') }}
|
</li>
|
||||||
</ChoiceSetting>
|
<ChoiceSetting
|
||||||
<div>
|
id="replyVisibility"
|
||||||
<BooleanSetting path="hidePostStats">
|
path="replyVisibility"
|
||||||
{{ $t('settings.hide_post_stats') }}
|
:options="replyVisibilityOptions"
|
||||||
</BooleanSetting>
|
>
|
||||||
</div>
|
{{ $t('settings.replies_in_timeline') }}
|
||||||
<div>
|
</ChoiceSetting>
|
||||||
<BooleanSetting path="hideUserStats">
|
<li>
|
||||||
{{ $t('settings.hide_user_stats') }}
|
<h3>{{ $t('settings.wordfilter') }}</h3>
|
||||||
</BooleanSetting>
|
<textarea
|
||||||
</div>
|
id="muteWords"
|
||||||
|
v-model="muteWordsString"
|
||||||
|
class="resize-height"
|
||||||
|
/>
|
||||||
|
<div>{{ $t('settings.filtering_explanation') }}</div>
|
||||||
|
</li>
|
||||||
|
<h3>{{ $t('settings.attachments') }}</h3>
|
||||||
|
<li>
|
||||||
|
<label for="maxThumbnails">
|
||||||
|
{{ $t('settings.max_thumbnails') }}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
id="maxThumbnails"
|
||||||
|
path.number="maxThumbnails"
|
||||||
|
class="number-input"
|
||||||
|
type="number"
|
||||||
|
min="0"
|
||||||
|
step="1"
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="hideAttachments">
|
||||||
|
{{ $t('settings.hide_attachments_in_tl') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="hideAttachmentsInConv">
|
||||||
|
{{ $t('settings.hide_attachments_in_convo') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="setting-item">
|
<div class="setting-item">
|
||||||
<div>
|
<h2>{{ $t('settings.user_profiles') }}</h2>
|
||||||
<p>{{ $t('settings.filtering_explanation') }}</p>
|
<ul class="setting-list">
|
||||||
<textarea
|
<li>
|
||||||
id="muteWords"
|
<BooleanSetting path="hideUserStats">
|
||||||
v-model="muteWordsString"
|
{{ $t('settings.hide_user_stats') }}
|
||||||
class="resize-height"
|
</BooleanSetting>
|
||||||
/>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
<div>
|
</div>
|
||||||
<BooleanSetting path="hideFilteredStatuses">
|
<div class="setting-item">
|
||||||
{{ $t('settings.hide_filtered_statuses') }}
|
<h2>{{ $t('settings.notifications') }}</h2>
|
||||||
</BooleanSetting>
|
<ul class="setting-list">
|
||||||
</div>
|
<li class="select-multiple">
|
||||||
|
<span class="label">{{ $t('settings.notification_visibility') }}</span>
|
||||||
|
<ul class="option-list">
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="notificationVisibility.likes">
|
||||||
|
{{ $t('settings.notification_visibility_likes') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="notificationVisibility.repeats">
|
||||||
|
{{ $t('settings.notification_visibility_repeats') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="notificationVisibility.follows">
|
||||||
|
{{ $t('settings.notification_visibility_follows') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="notificationVisibility.mentions">
|
||||||
|
{{ $t('settings.notification_visibility_mentions') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="notificationVisibility.moves">
|
||||||
|
{{ $t('settings.notification_visibility_moves') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="notificationVisibility.emojiReactions">
|
||||||
|
{{ $t('settings.notification_visibility_emoji_reactions') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -21,24 +21,9 @@
|
||||||
{{ $t('settings.hide_wallpaper') }}
|
{{ $t('settings.hide_wallpaper') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="instanceShoutboxPresent">
|
|
||||||
<BooleanSetting path="hideShoutbox">
|
|
||||||
{{ $t('settings.hide_shoutbox') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="setting-item">
|
|
||||||
<h2>{{ $t('nav.timeline') }}</h2>
|
|
||||||
<ul class="setting-list">
|
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="hideMutedPosts">
|
<BooleanSetting path="stopGifs">
|
||||||
{{ $t('settings.hide_muted_posts') }}
|
{{ $t('settings.stop_gifs') }}
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="collapseMessageWithSubject">
|
|
||||||
{{ $t('settings.collapse_subject') }}
|
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -68,14 +53,98 @@
|
||||||
</small>
|
</small>
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="virtualScrolling">
|
||||||
|
{{ $t('settings.virtual_scrolling') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="autohideFloatingPostButton">
|
||||||
|
{{ $t('settings.autohide_floating_post_button') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li v-if="instanceShoutboxPresent">
|
||||||
|
<BooleanSetting path="hideShoutbox">
|
||||||
|
{{ $t('settings.hide_shoutbox') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="setting-item">
|
||||||
|
<h2>{{ $t('settings.post_look_feel') }}</h2>
|
||||||
|
<ul class="setting-list">
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="collapseMessageWithSubject">
|
||||||
|
{{ $t('settings.collapse_subject') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="emojiReactionsOnTimeline">
|
<BooleanSetting path="emojiReactionsOnTimeline">
|
||||||
{{ $t('settings.emoji_reactions_on_timeline') }}
|
{{ $t('settings.emoji_reactions_on_timeline') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
|
<h3>{{ $t('settings.attachments') }}</h3>
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="virtualScrolling">
|
<BooleanSetting path="useContainFit">
|
||||||
{{ $t('settings.virtual_scrolling') }}
|
{{ $t('settings.use_contain_fit') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="hideNsfw">
|
||||||
|
{{ $t('settings.nsfw_clickthrough') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<ul class="setting-list suboptions">
|
||||||
|
<li>
|
||||||
|
<BooleanSetting
|
||||||
|
path="preloadImage"
|
||||||
|
:disabled="!hideNsfw"
|
||||||
|
>
|
||||||
|
{{ $t('settings.preload_images') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting
|
||||||
|
path="useOneClickNsfw"
|
||||||
|
:disabled="!hideNsfw"
|
||||||
|
>
|
||||||
|
{{ $t('settings.use_one_click_nsfw') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="loopVideo">
|
||||||
|
{{ $t('settings.loop_video') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
<ul
|
||||||
|
class="setting-list suboptions"
|
||||||
|
:class="[{disabled: !streaming}]"
|
||||||
|
>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting
|
||||||
|
path="loopVideoSilentOnly"
|
||||||
|
:disabled="!loopVideo || !loopSilentAvailable"
|
||||||
|
>
|
||||||
|
{{ $t('settings.loop_video_silent_only') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
<div
|
||||||
|
v-if="!loopSilentAvailable"
|
||||||
|
class="unavailable"
|
||||||
|
>
|
||||||
|
<FAIcon icon="globe" />! {{ $t('settings.limited_availability') }}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="playVideosInModal">
|
||||||
|
{{ $t('settings.play_videos_in_modal') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
|
<h3>{{ $t('settings.fun') }}</h3>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="greentext">
|
||||||
|
{{ $t('settings.greentext') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -140,97 +209,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-item">
|
|
||||||
<h2>{{ $t('settings.attachments') }}</h2>
|
|
||||||
<ul class="setting-list">
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="hideAttachments">
|
|
||||||
{{ $t('settings.hide_attachments_in_tl') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="hideAttachmentsInConv">
|
|
||||||
{{ $t('settings.hide_attachments_in_convo') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<label for="maxThumbnails">
|
|
||||||
{{ $t('settings.max_thumbnails') }}
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
id="maxThumbnails"
|
|
||||||
path.number="maxThumbnails"
|
|
||||||
class="number-input"
|
|
||||||
type="number"
|
|
||||||
min="0"
|
|
||||||
step="1"
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="hideNsfw">
|
|
||||||
{{ $t('settings.nsfw_clickthrough') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<ul class="setting-list suboptions">
|
|
||||||
<li>
|
|
||||||
<BooleanSetting
|
|
||||||
path="preloadImage"
|
|
||||||
:disabled="!hideNsfw"
|
|
||||||
>
|
|
||||||
{{ $t('settings.preload_images') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting
|
|
||||||
path="useOneClickNsfw"
|
|
||||||
:disabled="!hideNsfw"
|
|
||||||
>
|
|
||||||
{{ $t('settings.use_one_click_nsfw') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="stopGifs">
|
|
||||||
{{ $t('settings.stop_gifs') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="loopVideo">
|
|
||||||
{{ $t('settings.loop_video') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
<ul
|
|
||||||
class="setting-list suboptions"
|
|
||||||
:class="[{disabled: !streaming}]"
|
|
||||||
>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting
|
|
||||||
path="loopVideoSilentOnly"
|
|
||||||
:disabled="!loopVideo || !loopSilentAvailable"
|
|
||||||
>
|
|
||||||
{{ $t('settings.loop_video_silent_only') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
<div
|
|
||||||
v-if="!loopSilentAvailable"
|
|
||||||
class="unavailable"
|
|
||||||
>
|
|
||||||
<FAIcon icon="globe" />! {{ $t('settings.limited_availability') }}
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="playVideosInModal">
|
|
||||||
{{ $t('settings.play_videos_in_modal') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="useContainFit">
|
|
||||||
{{ $t('settings.use_contain_fit') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="setting-item">
|
<div class="setting-item">
|
||||||
<h2>{{ $t('settings.notifications') }}</h2>
|
<h2>{{ $t('settings.notifications') }}</h2>
|
||||||
<ul class="setting-list">
|
<ul class="setting-list">
|
||||||
|
@ -241,17 +219,6 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="setting-item">
|
|
||||||
<h2>{{ $t('settings.fun') }}</h2>
|
|
||||||
<ul class="setting-list">
|
|
||||||
<li>
|
|
||||||
<BooleanSetting path="greentext">
|
|
||||||
{{ $t('settings.greentext') }}
|
|
||||||
</BooleanSetting>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -186,26 +186,32 @@ const Status = {
|
||||||
return this.mentionsLine.length > 0
|
return this.mentionsLine.length > 0
|
||||||
},
|
},
|
||||||
muted () {
|
muted () {
|
||||||
|
if (this.statusoid.user.id === this.currentUser.id) return false
|
||||||
|
const reasonsToMute = this.userIsMuted ||
|
||||||
|
// Thread is muted
|
||||||
|
status.thread_muted ||
|
||||||
|
// Wordfiltered
|
||||||
|
this.muteWordHits.length > 0
|
||||||
|
return !this.unmuted && !this.shouldNotMute && reasonsToMute
|
||||||
|
},
|
||||||
|
userIsMuted () {
|
||||||
if (this.statusoid.user.id === this.currentUser.id) return false
|
if (this.statusoid.user.id === this.currentUser.id) return false
|
||||||
const { status } = this
|
const { status } = this
|
||||||
const { reblog } = status
|
const { reblog } = status
|
||||||
const relationship = this.$store.getters.relationship(status.user.id)
|
const relationship = this.$store.getters.relationship(status.user.id)
|
||||||
const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)
|
const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)
|
||||||
const reasonsToMute = (
|
return status.muted ||
|
||||||
// Post is muted according to BE
|
|
||||||
status.muted ||
|
|
||||||
// Reprööt of a muted post according to BE
|
// Reprööt of a muted post according to BE
|
||||||
(reblog && reblog.muted) ||
|
(reblog && reblog.muted) ||
|
||||||
// Muted user
|
// Muted user
|
||||||
relationship.muting ||
|
relationship.muting ||
|
||||||
// Muted user of a reprööt
|
// Muted user of a reprööt
|
||||||
(relationshipReblog && relationshipReblog.muting) ||
|
(relationshipReblog && relationshipReblog.muting)
|
||||||
// Thread is muted
|
},
|
||||||
status.thread_muted ||
|
shouldNotMute () {
|
||||||
// Wordfiltered
|
const { status } = this
|
||||||
this.muteWordHits.length > 0
|
const { reblog } = status
|
||||||
)
|
return (
|
||||||
const excusesNotToMute = (
|
|
||||||
(
|
(
|
||||||
this.inProfile && (
|
this.inProfile && (
|
||||||
// Don't mute user's posts on user timeline (except reblogs)
|
// Don't mute user's posts on user timeline (except reblogs)
|
||||||
|
@ -218,14 +224,26 @@ const Status = {
|
||||||
(this.inConversation && status.thread_muted)
|
(this.inConversation && status.thread_muted)
|
||||||
// No excuses if post has muted words
|
// No excuses if post has muted words
|
||||||
) && !this.muteWordHits.length > 0
|
) && !this.muteWordHits.length > 0
|
||||||
|
},
|
||||||
return !this.unmuted && !excusesNotToMute && reasonsToMute
|
hideMutedUsers () {
|
||||||
|
return this.mergedConfig.hideMutedPosts
|
||||||
|
},
|
||||||
|
hideMutedThreads () {
|
||||||
|
return this.mergedConfig.hideMutedThreads
|
||||||
},
|
},
|
||||||
hideFilteredStatuses () {
|
hideFilteredStatuses () {
|
||||||
return this.mergedConfig.hideFilteredStatuses
|
return this.mergedConfig.hideFilteredStatuses
|
||||||
},
|
},
|
||||||
|
hideWordFilteredPosts () {
|
||||||
|
return this.mergedConfig.hideWordFilteredPosts
|
||||||
|
},
|
||||||
hideStatus () {
|
hideStatus () {
|
||||||
return (this.muted && this.hideFilteredStatuses) || this.virtualHidden
|
return (this.virtualHidden || !this.shouldNotMute) && (
|
||||||
|
(this.muted && this.hideFilteredStatuses) ||
|
||||||
|
(this.userIsMuted && this.hideMutedUsers) ||
|
||||||
|
(this.status.thread_muted && this.hideMutedThreads) ||
|
||||||
|
(this.muteWordHits.length > 0 && this.hideWordFilteredPosts)
|
||||||
|
)
|
||||||
},
|
},
|
||||||
isFocused () {
|
isFocused () {
|
||||||
// retweet or root of an expanded conversation
|
// retweet or root of an expanded conversation
|
||||||
|
|
|
@ -48,10 +48,9 @@ const TimelineQuickSettings = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
hideMutedPosts: {
|
hideMutedPosts: {
|
||||||
get () { return this.mergedConfig.hideMutedPosts || this.mergedConfig.hideFilteredStatuses },
|
get () { return this.mergedConfig.hideFilteredStatuses },
|
||||||
set () {
|
set () {
|
||||||
const value = !this.hideMutedPosts
|
const value = !this.hideMutedPosts
|
||||||
this.$store.dispatch('setOption', { name: 'hideMutedPosts', value })
|
|
||||||
this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })
|
this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,8 +262,7 @@
|
||||||
"security": "Security",
|
"security": "Security",
|
||||||
"setting_changed": "Setting is different from default",
|
"setting_changed": "Setting is different from default",
|
||||||
"enter_current_password_to_confirm": "Enter your current password to confirm your identity",
|
"enter_current_password_to_confirm": "Enter your current password to confirm your identity",
|
||||||
"mentions_new_style": "Fancier mention links",
|
"post_look_feel": "Posts Look & Feel",
|
||||||
"mentions_new_place": "Put mentions on a separate line",
|
|
||||||
"mfa": {
|
"mfa": {
|
||||||
"otp": "OTP",
|
"otp": "OTP",
|
||||||
"setup_otp": "Setup OTP",
|
"setup_otp": "Setup OTP",
|
||||||
|
@ -336,6 +335,7 @@
|
||||||
"emoji_reactions_on_timeline": "Show emoji reactions on timeline",
|
"emoji_reactions_on_timeline": "Show emoji reactions on timeline",
|
||||||
"export_theme": "Save preset",
|
"export_theme": "Save preset",
|
||||||
"filtering": "Filtering",
|
"filtering": "Filtering",
|
||||||
|
"wordfilter": "Wordfilter",
|
||||||
"filtering_explanation": "All statuses containing these words will be muted, one per line",
|
"filtering_explanation": "All statuses containing these words will be muted, one per line",
|
||||||
"word_filter": "Word filter",
|
"word_filter": "Word filter",
|
||||||
"follow_export": "Follow export",
|
"follow_export": "Follow export",
|
||||||
|
@ -351,7 +351,7 @@
|
||||||
"hide_media_previews": "Hide media previews",
|
"hide_media_previews": "Hide media previews",
|
||||||
"hide_muted_posts": "Hide posts of muted users",
|
"hide_muted_posts": "Hide posts of muted users",
|
||||||
"hide_all_muted_posts": "Hide muted posts",
|
"hide_all_muted_posts": "Hide muted posts",
|
||||||
"max_thumbnails": "Maximum amount of thumbnails per post",
|
"max_thumbnails": "Maximum amount of thumbnails per post (empty = no limit)",
|
||||||
"hide_isp": "Hide instance-specific panel",
|
"hide_isp": "Hide instance-specific panel",
|
||||||
"hide_shoutbox": "Hide instance shoutbox",
|
"hide_shoutbox": "Hide instance shoutbox",
|
||||||
"right_sidebar": "Show sidebar on the right side",
|
"right_sidebar": "Show sidebar on the right side",
|
||||||
|
@ -361,7 +361,9 @@
|
||||||
"use_one_click_nsfw": "Open NSFW attachments with just one click",
|
"use_one_click_nsfw": "Open NSFW attachments with just one click",
|
||||||
"hide_post_stats": "Hide post statistics (e.g. the number of favorites)",
|
"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_user_stats": "Hide user statistics (e.g. the number of followers)",
|
||||||
"hide_filtered_statuses": "Hide filtered statuses",
|
"hide_filtered_statuses": "Hide all filtered posts",
|
||||||
|
"hide_wordfiltered_statuses": "Hide word-filtered statuses",
|
||||||
|
"hide_muted_threads": "Hide muted threads",
|
||||||
"import_blocks_from_a_csv_file": "Import blocks from a csv file",
|
"import_blocks_from_a_csv_file": "Import blocks from a csv file",
|
||||||
"import_followers_from_a_csv_file": "Import follows from a csv file",
|
"import_followers_from_a_csv_file": "Import follows from a csv file",
|
||||||
"import_theme": "Load preset",
|
"import_theme": "Load preset",
|
||||||
|
@ -402,6 +404,8 @@
|
||||||
"name_bio": "Name & bio",
|
"name_bio": "Name & bio",
|
||||||
"new_email": "New email",
|
"new_email": "New email",
|
||||||
"new_password": "New password",
|
"new_password": "New password",
|
||||||
|
"posts": "Posts",
|
||||||
|
"user_profiles": "User Profiles",
|
||||||
"notification_visibility": "Types of notifications to show",
|
"notification_visibility": "Types of notifications to show",
|
||||||
"notification_visibility_follows": "Follows",
|
"notification_visibility_follows": "Follows",
|
||||||
"notification_visibility_likes": "Favorites",
|
"notification_visibility_likes": "Favorites",
|
||||||
|
@ -418,7 +422,7 @@
|
||||||
"hide_followers_count_description": "Don't show follower count",
|
"hide_followers_count_description": "Don't show follower count",
|
||||||
"show_admin_badge": "Show \"Admin\" badge in my profile",
|
"show_admin_badge": "Show \"Admin\" badge in my profile",
|
||||||
"show_moderator_badge": "Show \"Moderator\" badge in my profile",
|
"show_moderator_badge": "Show \"Moderator\" badge in my profile",
|
||||||
"nsfw_clickthrough": "Enable clickthrough attachment and link preview image hiding for NSFW statuses",
|
"nsfw_clickthrough": "Hide sensitive/NSFW media",
|
||||||
"oauth_tokens": "OAuth tokens",
|
"oauth_tokens": "OAuth tokens",
|
||||||
"token": "Token",
|
"token": "Token",
|
||||||
"refresh_token": "Refresh token",
|
"refresh_token": "Refresh token",
|
||||||
|
@ -462,7 +466,7 @@
|
||||||
"subject_line_noop": "Do not copy",
|
"subject_line_noop": "Do not copy",
|
||||||
"post_status_content_type": "Post status content type",
|
"post_status_content_type": "Post status content type",
|
||||||
"sensitive_by_default": "Mark posts as sensitive by default",
|
"sensitive_by_default": "Mark posts as sensitive by default",
|
||||||
"stop_gifs": "Play-on-hover GIFs",
|
"stop_gifs": "Pause animated images until you hover on them",
|
||||||
"streaming": "Enable automatic streaming of new posts when scrolled to the top",
|
"streaming": "Enable automatic streaming of new posts when scrolled to the top",
|
||||||
"user_mutes": "Users",
|
"user_mutes": "Users",
|
||||||
"useStreamingApi": "Receive posts and notifications real-time",
|
"useStreamingApi": "Receive posts and notifications real-time",
|
||||||
|
|
|
@ -24,6 +24,8 @@ export const defaultState = {
|
||||||
hideShoutbox: false,
|
hideShoutbox: false,
|
||||||
// bad name: actually hides posts of muted USERS
|
// bad name: actually hides posts of muted USERS
|
||||||
hideMutedPosts: undefined, // instance default
|
hideMutedPosts: undefined, // instance default
|
||||||
|
hideMutedThreads: undefined, // instance default
|
||||||
|
hideWordFilteredPosts: undefined, // instance default
|
||||||
collapseMessageWithSubject: undefined, // instance default
|
collapseMessageWithSubject: undefined, // instance default
|
||||||
padEmoji: true,
|
padEmoji: true,
|
||||||
hideAttachments: false,
|
hideAttachments: false,
|
||||||
|
|
|
@ -21,7 +21,10 @@ const defaultState = {
|
||||||
collapseMessageWithSubject: false,
|
collapseMessageWithSubject: false,
|
||||||
greentext: false,
|
greentext: false,
|
||||||
hideFilteredStatuses: false,
|
hideFilteredStatuses: false,
|
||||||
|
// bad name: actually hides posts of muted USERS
|
||||||
hideMutedPosts: false,
|
hideMutedPosts: false,
|
||||||
|
hideMutedThreads: true,
|
||||||
|
hideWordFilteredPosts: false,
|
||||||
hidePostStats: false,
|
hidePostStats: false,
|
||||||
hideSitename: false,
|
hideSitename: false,
|
||||||
hideUserStats: false,
|
hideUserStats: false,
|
||||||
|
|
Loading…
Reference in a new issue