Support `status` notification type

Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
merge-requests/1931/head
marcin mikołajczak 4 months ago
parent 82db31f7ac
commit 5c48ea2f1a

@ -0,0 +1 @@
Support `status` notification type

@ -3,6 +3,7 @@ import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
const tabModeDict = { const tabModeDict = {
mentions: ['mention'], mentions: ['mention'],
statuses: ['status'],
'likes+repeats': ['repeat', 'like'], 'likes+repeats': ['repeat', 'like'],
follows: ['follow'], follows: ['follow'],
reactions: ['pleroma:emoji_reaction'], reactions: ['pleroma:emoji_reaction'],

@ -1,6 +1,6 @@
<template> <template>
<article <article
v-if="notification.type === 'mention'" v-if="notification.type === 'mention' || notification.type === 'status'"
> >
<Status <Status
class="Notification" class="Notification"

@ -43,6 +43,15 @@
:class="{ 'menu-checkbox-checked': filters.mentions }" :class="{ 'menu-checkbox-checked': filters.mentions }"
/>{{ $t('settings.notification_visibility_mentions') }} />{{ $t('settings.notification_visibility_mentions') }}
</button> </button>
<button
class="menu-item dropdown-item"
@click="toggleNotificationFilter('statuses')"
>
<span
class="input menu-checkbox"
:class="{ 'menu-checkbox-checked': filters.statuses }"
/>{{ $t('settings.notification_visibility_statuses') }}
</button>
<button <button
class="menu-item dropdown-item" class="menu-item dropdown-item"
@click="toggleNotificationFilter('emojiReactions')" @click="toggleNotificationFilter('emojiReactions')"

@ -33,7 +33,7 @@ const Notifications = {
// Disables panel styles, unread mark, potentially other notification-related actions // Disables panel styles, unread mark, potentially other notification-related actions
// meant for "Interactions" timeline // meant for "Interactions" timeline
minimalMode: Boolean, minimalMode: Boolean,
// Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in "Interactions" timeline // Custom filter mode, an array of strings, possible values 'mention', 'status', 'repeat', 'like', 'follow', used to override global filter for use in "Interactions" timeline
filterMode: Array, filterMode: Array,
// Do not show extra notifications // Do not show extra notifications
noExtra: { noExtra: {

@ -60,6 +60,21 @@
</li> </li>
</ul> </ul>
</li> </li>
<li>
<h4> {{ $t('settings.notification_visibility_statuses') }}</h4>
<ul class="setting-list">
<li>
<BooleanSetting path="notificationVisibility.statuses">
{{ $t('settings.notification_visibility_in_column') }}
</BooleanSetting>
</li>
<li>
<BooleanSetting path="notificationNative.statuses">
{{ $t('settings.notification_visibility_native_notifications') }}
</BooleanSetting>
</li>
</ul>
</li>
<li> <li>
<h4> {{ $t('settings.notification_visibility_likes') }}</h4> <h4> {{ $t('settings.notification_visibility_likes') }}</h4>
<ul class="setting-list"> <ul class="setting-list">

@ -212,7 +212,8 @@
"unread_follow_requests": "{num} new follow request | {num} new follow requests", "unread_follow_requests": "{num} new follow request | {num} new follow requests",
"configuration_tip": "You can customize what to display here in {theSettings}. {dismiss}", "configuration_tip": "You can customize what to display here in {theSettings}. {dismiss}",
"configuration_tip_settings": "the settings", "configuration_tip_settings": "the settings",
"configuration_tip_dismiss": "Do not show again" "configuration_tip_dismiss": "Do not show again",
"subscribed_status": "posted"
}, },
"polls": { "polls": {
"add_poll": "Add poll", "add_poll": "Add poll",
@ -588,6 +589,7 @@
"notification_visibility_moves": "User Migrates", "notification_visibility_moves": "User Migrates",
"notification_visibility_emoji_reactions": "Reactions", "notification_visibility_emoji_reactions": "Reactions",
"notification_visibility_polls": "Ends of polls you voted in", "notification_visibility_polls": "Ends of polls you voted in",
"notification_visibility_statuses": "Subscriptions",
"notification_show_extra": "Show extra notifications in the notifications column", "notification_show_extra": "Show extra notifications in the notifications column",
"notification_extra_chats": "Show unread chats", "notification_extra_chats": "Show unread chats",
"notification_extra_announcements": "Show unread announcements", "notification_extra_announcements": "Show unread announcements",

@ -60,6 +60,7 @@ export const defaultState = {
notificationVisibility: { notificationVisibility: {
follows: true, follows: true,
mentions: true, mentions: true,
statuses: true,
likes: true, likes: true,
repeats: true, repeats: true,
moves: true, moves: true,
@ -72,6 +73,7 @@ export const defaultState = {
notificationNative: { notificationNative: {
follows: true, follows: true,
mentions: true, mentions: true,
statuses: true,
likes: false, likes: false,
repeats: false, repeats: false,
moves: false, moves: false,

@ -18,6 +18,7 @@ export const visibleTypes = store => {
return ([ return ([
notificationVisibility.likes && 'like', notificationVisibility.likes && 'like',
notificationVisibility.mentions && 'mention', notificationVisibility.mentions && 'mention',
notificationVisibility.statuses && 'status',
notificationVisibility.repeats && 'repeat', notificationVisibility.repeats && 'repeat',
notificationVisibility.follows && 'follow', notificationVisibility.follows && 'follow',
notificationVisibility.followRequest && 'follow_request', notificationVisibility.followRequest && 'follow_request',
@ -28,7 +29,7 @@ export const visibleTypes = store => {
].filter(_ => _)) ].filter(_ => _))
} }
const statusNotifications = new Set(['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']) const statusNotifications = new Set(['like', 'mention', 'status', 'repeat', 'pleroma:emoji_reaction', 'poll'])
export const isStatusNotification = (type) => statusNotifications.has(type) export const isStatusNotification = (type) => statusNotifications.has(type)
@ -118,6 +119,9 @@ export const prepareNotificationObject = (notification, i18n) => {
case 'like': case 'like':
i18nString = 'favorited_you' i18nString = 'favorited_you'
break break
case 'status':
i18nString = 'subscribed_status'
break
case 'repeat': case 'repeat':
i18nString = 'repeated_you' i18nString = 'repeated_you'
break break

@ -5,6 +5,7 @@ import { promiseInterval } from '../promise_interval/promise_interval.js'
// Note: chat_mention excluded as pleroma-fe polls them separately // Note: chat_mention excluded as pleroma-fe polls them separately
const mastoApiNotificationTypes = [ const mastoApiNotificationTypes = [
'mention', 'mention',
'status',
'favourite', 'favourite',
'reblog', 'reblog',
'follow', 'follow',

@ -38,6 +38,8 @@ const setSettings = async () => {
switch (k) { switch (k) {
case 'mentions': case 'mentions':
return 'mention' return 'mention'
case 'statuses':
return 'status'
case 'likes': case 'likes':
return 'like' return 'like'
case 'repeats': case 'repeats':

Loading…
Cancel
Save