forked from AkkomaGang/akkoma-fe
Merge branch 'eientei' into 'develop'
Mute bot posts filtering option See merge request pleroma/pleroma-fe!1440
This commit is contained in:
commit
51b14cc615
12 changed files with 76 additions and 4 deletions
|
@ -115,6 +115,7 @@ const setSettings = async ({ apiConfig, staticConfig, store }) => {
|
||||||
copyInstanceOption('nsfwCensorImage')
|
copyInstanceOption('nsfwCensorImage')
|
||||||
copyInstanceOption('background')
|
copyInstanceOption('background')
|
||||||
copyInstanceOption('hidePostStats')
|
copyInstanceOption('hidePostStats')
|
||||||
|
copyInstanceOption('hideBotIndication')
|
||||||
copyInstanceOption('hideUserStats')
|
copyInstanceOption('hideUserStats')
|
||||||
copyInstanceOption('hideFilteredStatuses')
|
copyInstanceOption('hideFilteredStatuses')
|
||||||
copyInstanceOption('logo')
|
copyInstanceOption('logo')
|
||||||
|
|
|
@ -37,11 +37,21 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="muteBotStatuses">
|
||||||
|
{{ $t('settings.mute_bot_posts') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<BooleanSetting path="hidePostStats">
|
<BooleanSetting path="hidePostStats">
|
||||||
{{ $t('settings.hide_post_stats') }}
|
{{ $t('settings.hide_post_stats') }}
|
||||||
</BooleanSetting>
|
</BooleanSetting>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<BooleanSetting path="hideBotIndication">
|
||||||
|
{{ $t('settings.hide_bot_indication') }}
|
||||||
|
</BooleanSetting>
|
||||||
|
</li>
|
||||||
<ChoiceSetting
|
<ChoiceSetting
|
||||||
id="replyVisibility"
|
id="replyVisibility"
|
||||||
path="replyVisibility"
|
path="replyVisibility"
|
||||||
|
|
|
@ -166,6 +166,12 @@ const Status = {
|
||||||
muteWordHits () {
|
muteWordHits () {
|
||||||
return muteWordHits(this.status, this.muteWords)
|
return muteWordHits(this.status, this.muteWords)
|
||||||
},
|
},
|
||||||
|
botStatus () {
|
||||||
|
return this.status.user.bot
|
||||||
|
},
|
||||||
|
botIndicator () {
|
||||||
|
return this.botStatus && !this.hideBotIndication
|
||||||
|
},
|
||||||
mentionsLine () {
|
mentionsLine () {
|
||||||
if (!this.headTailLinks) return []
|
if (!this.headTailLinks) return []
|
||||||
const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))
|
const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))
|
||||||
|
@ -191,7 +197,9 @@ const Status = {
|
||||||
// Thread is muted
|
// Thread is muted
|
||||||
status.thread_muted ||
|
status.thread_muted ||
|
||||||
// Wordfiltered
|
// Wordfiltered
|
||||||
this.muteWordHits.length > 0
|
this.muteWordHits.length > 0 ||
|
||||||
|
// bot status
|
||||||
|
(this.muteBotStatuses && this.botStatus && !this.compact)
|
||||||
return !this.unmuted && !this.shouldNotMute && reasonsToMute
|
return !this.unmuted && !this.shouldNotMute && reasonsToMute
|
||||||
},
|
},
|
||||||
userIsMuted () {
|
userIsMuted () {
|
||||||
|
@ -293,6 +301,12 @@ const Status = {
|
||||||
hidePostStats () {
|
hidePostStats () {
|
||||||
return this.mergedConfig.hidePostStats
|
return this.mergedConfig.hidePostStats
|
||||||
},
|
},
|
||||||
|
muteBotStatuses () {
|
||||||
|
return this.mergedConfig.muteBotStatuses
|
||||||
|
},
|
||||||
|
hideBotIndication () {
|
||||||
|
return this.mergedConfig.hideBotIndication
|
||||||
|
},
|
||||||
currentUser () {
|
currentUser () {
|
||||||
return this.$store.state.users.currentUser
|
return this.$store.state.users.currentUser
|
||||||
},
|
},
|
||||||
|
|
|
@ -77,6 +77,7 @@
|
||||||
<UserAvatar
|
<UserAvatar
|
||||||
v-if="retweet"
|
v-if="retweet"
|
||||||
class="left-side repeater-avatar"
|
class="left-side repeater-avatar"
|
||||||
|
:bot="botIndicator"
|
||||||
:better-shadow="betterShadow"
|
:better-shadow="betterShadow"
|
||||||
:user="statusoid.user"
|
:user="statusoid.user"
|
||||||
/>
|
/>
|
||||||
|
@ -124,6 +125,7 @@
|
||||||
@click.stop.prevent.capture.native="toggleUserExpanded"
|
@click.stop.prevent.capture.native="toggleUserExpanded"
|
||||||
>
|
>
|
||||||
<UserAvatar
|
<UserAvatar
|
||||||
|
:bot="botIndicator"
|
||||||
:compact="compact"
|
:compact="compact"
|
||||||
:better-shadow="betterShadow"
|
:better-shadow="betterShadow"
|
||||||
:user="status.user"
|
:user="status.user"
|
||||||
|
@ -407,7 +409,10 @@
|
||||||
class="gravestone"
|
class="gravestone"
|
||||||
>
|
>
|
||||||
<div class="left-side">
|
<div class="left-side">
|
||||||
<UserAvatar :compact="compact" />
|
<UserAvatar
|
||||||
|
:compact="compact"
|
||||||
|
:bot="botIndicator"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="right-side">
|
<div class="right-side">
|
||||||
<div class="deleted-text">
|
<div class="deleted-text">
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
@load="onLoad"
|
@load="onLoad"
|
||||||
@error="onError"
|
@error="onError"
|
||||||
>
|
>
|
||||||
|
<slot/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,13 @@ const TimelineQuickSettings = {
|
||||||
const value = !this.hideMutedPosts
|
const value = !this.hideMutedPosts
|
||||||
this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })
|
this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
muteBotStatuses: {
|
||||||
|
get () { return this.mergedConfig.muteBotStatuses },
|
||||||
|
set () {
|
||||||
|
const value = !this.muteBotStatuses
|
||||||
|
this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,15 @@
|
||||||
class="dropdown-divider"
|
class="dropdown-divider"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<button
|
||||||
|
class="button-default dropdown-item"
|
||||||
|
@click="muteBotStatuses = !muteBotStatuses"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="menu-checkbox"
|
||||||
|
:class="{ 'menu-checkbox-checked': muteBotStatuses }"
|
||||||
|
/>{{ $t('settings.mute_bot_posts') }}
|
||||||
|
</button>
|
||||||
<button
|
<button
|
||||||
class="button-default dropdown-item"
|
class="button-default dropdown-item"
|
||||||
@click="hideMedia = !hideMedia"
|
@click="hideMedia = !hideMedia"
|
||||||
|
|
|
@ -1,10 +1,21 @@
|
||||||
import StillImage from '../still-image/still-image.vue'
|
import StillImage from '../still-image/still-image.vue'
|
||||||
|
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
|
||||||
|
import {
|
||||||
|
faRobot
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
|
library.add(
|
||||||
|
faRobot
|
||||||
|
)
|
||||||
|
|
||||||
const UserAvatar = {
|
const UserAvatar = {
|
||||||
props: [
|
props: [
|
||||||
'user',
|
'user',
|
||||||
'betterShadow',
|
'betterShadow',
|
||||||
'compact'
|
'compact',
|
||||||
|
'bot'
|
||||||
],
|
],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -7,7 +7,9 @@
|
||||||
:src="imgSrc(user.profile_image_url_original)"
|
:src="imgSrc(user.profile_image_url_original)"
|
||||||
:class="{ 'avatar-compact': compact, 'better-shadow': betterShadow }"
|
:class="{ 'avatar-compact': compact, 'better-shadow': betterShadow }"
|
||||||
:image-load-error="imageLoadError"
|
:image-load-error="imageLoadError"
|
||||||
/>
|
>
|
||||||
|
<FAIcon v-if="bot" icon="robot" class="bot-indicator" />
|
||||||
|
</StillImage>
|
||||||
<div
|
<div
|
||||||
v-else
|
v-else
|
||||||
class="Avatar -placeholder"
|
class="Avatar -placeholder"
|
||||||
|
@ -36,6 +38,12 @@
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& > .bot-indicator {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
&.better-shadow {
|
&.better-shadow {
|
||||||
box-shadow: var(--_avatarShadowInset);
|
box-shadow: var(--_avatarShadowInset);
|
||||||
filter: var(--_avatarShadowFilter);
|
filter: var(--_avatarShadowFilter);
|
||||||
|
|
|
@ -351,6 +351,8 @@
|
||||||
"hide_attachments_in_tl": "Hide attachments in timeline",
|
"hide_attachments_in_tl": "Hide attachments in timeline",
|
||||||
"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",
|
||||||
|
"mute_bot_posts": "Mute bot posts",
|
||||||
|
"hide_bot_indication": "Hide bot indication in posts",
|
||||||
"hide_all_muted_posts": "Hide muted posts",
|
"hide_all_muted_posts": "Hide muted posts",
|
||||||
"max_thumbnails": "Maximum amount of thumbnails per post (empty = no limit)",
|
"max_thumbnails": "Maximum amount of thumbnails per post (empty = no limit)",
|
||||||
"hide_isp": "Hide instance-specific panel",
|
"hide_isp": "Hide instance-specific panel",
|
||||||
|
|
|
@ -27,6 +27,7 @@ export const defaultState = {
|
||||||
hideMutedPosts: undefined, // instance default
|
hideMutedPosts: undefined, // instance default
|
||||||
hideMutedThreads: undefined, // instance default
|
hideMutedThreads: undefined, // instance default
|
||||||
hideWordFilteredPosts: undefined, // instance default
|
hideWordFilteredPosts: undefined, // instance default
|
||||||
|
muteBotStatuses: undefined, // instance default
|
||||||
collapseMessageWithSubject: undefined, // instance default
|
collapseMessageWithSubject: undefined, // instance default
|
||||||
padEmoji: true,
|
padEmoji: true,
|
||||||
hideAttachments: false,
|
hideAttachments: false,
|
||||||
|
@ -79,6 +80,7 @@ export const defaultState = {
|
||||||
mentionLinkShowYous: undefined, // instance default
|
mentionLinkShowYous: undefined, // instance default
|
||||||
mentionLinkBoldenYou: undefined, // instance default
|
mentionLinkBoldenYou: undefined, // instance default
|
||||||
hidePostStats: undefined, // instance default
|
hidePostStats: undefined, // instance default
|
||||||
|
hideBotIndication: undefined, // instance default
|
||||||
hideUserStats: undefined, // instance default
|
hideUserStats: undefined, // instance default
|
||||||
virtualScrolling: undefined, // instance default
|
virtualScrolling: undefined, // instance default
|
||||||
sensitiveByDefault: undefined // instance default
|
sensitiveByDefault: undefined // instance default
|
||||||
|
|
|
@ -33,8 +33,10 @@ const defaultState = {
|
||||||
hideMutedThreads: true,
|
hideMutedThreads: true,
|
||||||
hideWordFilteredPosts: false,
|
hideWordFilteredPosts: false,
|
||||||
hidePostStats: false,
|
hidePostStats: false,
|
||||||
|
hideBotIndication: false,
|
||||||
hideSitename: false,
|
hideSitename: false,
|
||||||
hideUserStats: false,
|
hideUserStats: false,
|
||||||
|
muteBotStatuses: false,
|
||||||
loginMethod: 'password',
|
loginMethod: 'password',
|
||||||
logo: '/static/logo.svg',
|
logo: '/static/logo.svg',
|
||||||
logoMargin: '.2em',
|
logoMargin: '.2em',
|
||||||
|
|
Loading…
Reference in a new issue