diff options
| author | HJ <30-hj@users.noreply.git.pleroma.social> | 2024-07-21 19:44:05 +0000 |
|---|---|---|
| committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2024-07-21 19:44:05 +0000 |
| commit | d096962b054a49fb4971da30a801738838d08ca0 (patch) | |
| tree | 64bc3f7c822f2a0684f25a86a2457c4c993d3a96 | |
| parent | f0f323b49c40ac48fe175afcffe69b633eb362a3 (diff) | |
| parent | 34285150a005ea13762df98d9a9ad338cff38a3e (diff) | |
Merge branch 'status-notification-type' into 'develop'
Support `status` notification type
See merge request pleroma/pleroma-fe!1916
| -rw-r--r-- | changelog.d/status-notification-type.add | 1 | ||||
| -rw-r--r-- | src/components/interactions/interactions.js | 1 | ||||
| -rw-r--r-- | src/components/interactions/interactions.vue | 6 | ||||
| -rw-r--r-- | src/components/notification/notification.vue | 2 | ||||
| -rw-r--r-- | src/components/notifications/notification_filters.vue | 9 | ||||
| -rw-r--r-- | src/components/notifications/notifications.js | 2 | ||||
| -rw-r--r-- | src/components/settings_modal/tabs/notifications_tab.vue | 15 | ||||
| -rw-r--r-- | src/i18n/en.json | 7 | ||||
| -rw-r--r-- | src/modules/config.js | 2 | ||||
| -rw-r--r-- | src/services/notification_utils/notification_utils.js | 6 | ||||
| -rw-r--r-- | src/services/notifications_fetcher/notifications_fetcher.service.js | 1 | ||||
| -rw-r--r-- | src/sw.js | 2 |
12 files changed, 48 insertions, 6 deletions
diff --git a/changelog.d/status-notification-type.add b/changelog.d/status-notification-type.add new file mode 100644 index 00000000..0917dad4 --- /dev/null +++ b/changelog.d/status-notification-type.add @@ -0,0 +1 @@ +Support `status` notification type
\ No newline at end of file diff --git a/src/components/interactions/interactions.js b/src/components/interactions/interactions.js index 1ae1d01c..fc441b90 100644 --- a/src/components/interactions/interactions.js +++ b/src/components/interactions/interactions.js @@ -3,6 +3,7 @@ import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx' const tabModeDict = { mentions: ['mention'], + statuses: ['status'], 'likes+repeats': ['repeat', 'like'], follows: ['follow'], reactions: ['pleroma:emoji_reaction'], diff --git a/src/components/interactions/interactions.vue b/src/components/interactions/interactions.vue index 35d03562..a2c56af4 100644 --- a/src/components/interactions/interactions.vue +++ b/src/components/interactions/interactions.vue @@ -10,10 +10,14 @@ :on-switch="onModeSwitch" > <span - key="mentions" + key="statuses" :label="$t('nav.mentions')" /> <span + key="statuses" + :label="$t('interactions.statuses')" + /> + <span key="likes+repeats" :label="$t('interactions.favs_repeats')" /> diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 632ae6e9..f84b75de 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -1,6 +1,6 @@ <template> <article - v-if="notification.type === 'mention'" + v-if="notification.type === 'mention' || notification.type === 'status'" > <Status class="Notification" diff --git a/src/components/notifications/notification_filters.vue b/src/components/notifications/notification_filters.vue index cc506e78..497a5156 100644 --- a/src/components/notifications/notification_filters.vue +++ b/src/components/notifications/notification_filters.vue @@ -45,6 +45,15 @@ </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 + class="menu-item dropdown-item" @click="toggleNotificationFilter('emojiReactions')" > <span diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js index a9fa8455..85d3662e 100644 --- a/src/components/notifications/notifications.js +++ b/src/components/notifications/notifications.js @@ -33,7 +33,7 @@ const Notifications = { // Disables panel styles, unread mark, potentially other notification-related actions // meant for "Interactions" timeline 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, // Do not show extra notifications noExtra: { diff --git a/src/components/settings_modal/tabs/notifications_tab.vue b/src/components/settings_modal/tabs/notifications_tab.vue index ca2cf8ad..10228888 100644 --- a/src/components/settings_modal/tabs/notifications_tab.vue +++ b/src/components/settings_modal/tabs/notifications_tab.vue @@ -61,6 +61,21 @@ </ul> </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> <h4> {{ $t('settings.notification_visibility_likes') }}</h4> <ul class="setting-list"> <li> diff --git a/src/i18n/en.json b/src/i18n/en.json index f626e933..c8497b52 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -212,7 +212,8 @@ "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_settings": "the settings", - "configuration_tip_dismiss": "Do not show again" + "configuration_tip_dismiss": "Do not show again", + "subscribed_status": "posted" }, "polls": { "add_poll": "Add poll", @@ -264,7 +265,8 @@ "emoji_reactions": "Emoji Reactions", "reports": "Reports", "moves": "User migrates", - "load_older": "Load older interactions" + "load_older": "Load older interactions", + "statuses": "Subscriptions" }, "post_status": { "edit_status": "Edit status", @@ -588,6 +590,7 @@ "notification_visibility_moves": "User Migrates", "notification_visibility_emoji_reactions": "Reactions", "notification_visibility_polls": "Ends of polls you voted in", + "notification_visibility_statuses": "Subscriptions", "notification_show_extra": "Show extra notifications in the notifications column", "notification_extra_chats": "Show unread chats", "notification_extra_announcements": "Show unread announcements", diff --git a/src/modules/config.js b/src/modules/config.js index 8001b854..aa400f77 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -60,6 +60,7 @@ export const defaultState = { notificationVisibility: { follows: true, mentions: true, + statuses: true, likes: true, repeats: true, moves: true, @@ -72,6 +73,7 @@ export const defaultState = { notificationNative: { follows: true, mentions: true, + statuses: true, likes: false, repeats: false, moves: false, diff --git a/src/services/notification_utils/notification_utils.js b/src/services/notification_utils/notification_utils.js index 7b705e65..831b27f6 100644 --- a/src/services/notification_utils/notification_utils.js +++ b/src/services/notification_utils/notification_utils.js @@ -18,6 +18,7 @@ export const visibleTypes = store => { return ([ notificationVisibility.likes && 'like', notificationVisibility.mentions && 'mention', + notificationVisibility.statuses && 'status', notificationVisibility.repeats && 'repeat', notificationVisibility.follows && 'follow', notificationVisibility.followRequest && 'follow_request', @@ -28,7 +29,7 @@ export const visibleTypes = store => { ].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) @@ -118,6 +119,9 @@ export const prepareNotificationObject = (notification, i18n) => { case 'like': i18nString = 'favorited_you' break + case 'status': + i18nString = 'subscribed_status' + break case 'repeat': i18nString = 'repeated_you' break diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js index 6403693c..32854fed 100644 --- a/src/services/notifications_fetcher/notifications_fetcher.service.js +++ b/src/services/notifications_fetcher/notifications_fetcher.service.js @@ -5,6 +5,7 @@ import { promiseInterval } from '../promise_interval/promise_interval.js' // Note: chat_mention excluded as pleroma-fe polls them separately const mastoApiNotificationTypes = [ 'mention', + 'status', 'favourite', 'reblog', 'follow', @@ -38,6 +38,8 @@ const setSettings = async () => { switch (k) { case 'mentions': return 'mention' + case 'statuses': + return 'status' case 'likes': return 'like' case 'repeats': |
