From ec16074defd53ec89303b325646e1a1de93811a1 Mon Sep 17 00:00:00 2001 From: KMY Date: Sat, 12 Aug 2023 22:04:22 +0900 Subject: [PATCH] Add limited post icon --- app/helpers/statuses_helper.rb | 2 ++ app/javascript/mastodon/components/status.jsx | 2 ++ .../features/compose/components/privacy_dropdown.jsx | 2 +- .../features/report/components/status_check_box.jsx | 2 ++ .../mastodon/features/status/components/detailed_status.jsx | 2 ++ .../mastodon/features/ui/components/boost_modal.jsx | 2 ++ app/javascript/mastodon/locales/en.json | 3 +++ app/javascript/mastodon/locales/ja.json | 3 +++ app/serializers/rest/status_serializer.rb | 6 +----- 9 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/helpers/statuses_helper.rb b/app/helpers/statuses_helper.rb index 6037839a24..01102645de 100644 --- a/app/helpers/statuses_helper.rb +++ b/app/helpers/statuses_helper.rb @@ -77,6 +77,8 @@ module StatusesHelper fa_icon 'key fw' when 'private' fa_icon 'lock fw' + when 'limited' + fa_icon 'get-pocket fw' when 'direct' fa_icon 'at fw' end diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index c8fb36d199..06e0bd2aa1 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -69,6 +69,7 @@ const messages = defineMessages({ public_unlisted_short: { id: 'privacy.public_unlisted.short', defaultMessage: 'Public unlisted' }, login_short: { id: 'privacy.login.short', defaultMessage: 'Login only' }, private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' }, + limited_short: { id: 'privacy.limited.short', defaultMessage: 'Limited menbers only' }, direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, edited: { id: 'status.edited', defaultMessage: 'Edited {date}' }, }); @@ -398,6 +399,7 @@ class Status extends ImmutablePureComponent { 'public_unlisted': { icon: 'cloud', text: intl.formatMessage(messages.public_unlisted_short) }, 'login': { icon: 'key', text: intl.formatMessage(messages.login_short) }, 'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) }, + 'limited': { icon: 'get-pocket', text: intl.formatMessage(messages.limited_short) }, 'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) }, }; diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx index 22f6a44c2b..89545f53ce 100644 --- a/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx +++ b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx @@ -233,8 +233,8 @@ class PrivacyDropdown extends PureComponent { { icon: 'cloud', value: 'public_unlisted', text: formatMessage(messages.public_unlisted_short), meta: formatMessage(messages.public_unlisted_long) }, { icon: 'key', value: 'login', text: formatMessage(messages.login_short), meta: formatMessage(messages.login_long) }, { icon: 'unlock', value: 'unlisted', text: formatMessage(messages.unlisted_short), meta: formatMessage(messages.unlisted_long) }, - { icon: 'exchange', value: 'mutual', text: formatMessage(messages.mutual_short), meta: formatMessage(messages.mutual_long) }, { icon: 'lock', value: 'private', text: formatMessage(messages.private_short), meta: formatMessage(messages.private_long) }, + { icon: 'exchange', value: 'mutual', text: formatMessage(messages.mutual_short), meta: formatMessage(messages.mutual_long) }, { icon: 'at', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) }, ]; this.selectableOptions = [...this.options]; diff --git a/app/javascript/mastodon/features/report/components/status_check_box.jsx b/app/javascript/mastodon/features/report/components/status_check_box.jsx index e16aa10865..78c34b1ee4 100644 --- a/app/javascript/mastodon/features/report/components/status_check_box.jsx +++ b/app/javascript/mastodon/features/report/components/status_check_box.jsx @@ -20,6 +20,7 @@ const messages = defineMessages({ public_unlisted_short: { id: 'privacy.public_unlisted.short', defaultMessage: 'Public unlisted' }, login_short: { id: 'privacy.login.short', defaultMessage: 'Login only' }, private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' }, + limited_short: { id: 'privacy.limited.short', defaultMessage: 'Limited menbers only' }, direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, }); @@ -51,6 +52,7 @@ class StatusCheckBox extends PureComponent { 'public_unlisted': { icon: 'cloud', text: intl.formatMessage(messages.public_unlisted_short) }, 'login': { icon: 'key', text: intl.formatMessage(messages.login_short) }, 'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) }, + 'limited': { icon: 'get-pocket', text: intl.formatMessage(messages.limited_short) }, 'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) }, }; diff --git a/app/javascript/mastodon/features/status/components/detailed_status.jsx b/app/javascript/mastodon/features/status/components/detailed_status.jsx index f4fb303c17..ec4a3f253b 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.jsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.jsx @@ -30,6 +30,7 @@ const messages = defineMessages({ public_unlisted_short: { id: 'privacy.public_unlisted.short', defaultMessage: 'Public unlisted' }, login_short: { id: 'privacy.login.short', defaultMessage: 'Login only' }, private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' }, + limited_short: { id: 'privacy.limited.short', defaultMessage: 'Limited menbers only' }, direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, searchability_public_short: { id: 'searchability.public.short', defaultMessage: 'Public' }, searchability_private_short: { id: 'searchability.unlisted.short', defaultMessage: 'Followers' }, @@ -249,6 +250,7 @@ class DetailedStatus extends ImmutablePureComponent { 'public_unlisted': { icon: 'cloud', text: intl.formatMessage(messages.public_unlisted_short) }, 'login': { icon: 'key', text: intl.formatMessage(messages.login_short) }, 'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) }, + 'limited': { icon: 'get-pocket', text: intl.formatMessage(messages.limited_short) }, 'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) }, }; diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.jsx b/app/javascript/mastodon/features/ui/components/boost_modal.jsx index d913340a54..55c14df00c 100644 --- a/app/javascript/mastodon/features/ui/components/boost_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/boost_modal.jsx @@ -27,6 +27,7 @@ const messages = defineMessages({ public_unlisted_short: { id: 'privacy.public_unlisted.short', defaultMessage: 'Public unlisted' }, login_short: { id: 'privacy.login.short', defaultMessage: 'Login only' }, private_short: { id: 'privacy.private.short', defaultMessage: 'Followers only' }, + limited_short: { id: 'privacy.limited.short', defaultMessage: 'Limited menbers only' }, direct_short: { id: 'privacy.direct.short', defaultMessage: 'Mentioned people only' }, }); @@ -94,6 +95,7 @@ class BoostModal extends ImmutablePureComponent { 'public_unlisted': { icon: 'cloud', text: intl.formatMessage(messages.public_unlisted_short) }, 'login': { icon: 'key', text: intl.formatMessage(messages.login_short) }, 'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) }, + 'limited': { icon: 'get-pocket', text: intl.formatMessage(messages.limited_short) }, 'direct': { icon: 'at', text: intl.formatMessage(messages.direct_short) }, }; diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 0d05c03161..a0d1e56536 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -520,8 +520,11 @@ "privacy.change": "Change post privacy", "privacy.direct.long": "Visible for mentioned users only", "privacy.direct.short": "Mentioned people only", + "privacy.limited.short": "Limited", "privacy.login.long": "Visible for login users only", "privacy.login.short": "Login only", + "privacy.mutual.long": "Mutual followers only", + "privacy.mutual.short": "Mutual", "privacy.private.long": "Visible for followers only", "privacy.private.short": "Followers only", "privacy.public.long": "Visible for all", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 13330f1c39..efaacae94d 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -526,8 +526,11 @@ "privacy.change": "公開範囲を変更", "privacy.direct.long": "指定された相手のみ閲覧可", "privacy.direct.short": "指定された相手のみ", + "privacy.limited.short": "限定投稿", "privacy.login.long": "ログインユーザーのみ閲覧可、公開", "privacy.login.short": "ログインユーザーのみ", + "privacy.mutual.long": "相互フォローさんのみ閲覧可、限定投稿", + "privacy.mutual.short": "相互のみ", "privacy.private.long": "フォロワーのみ閲覧可", "privacy.private.short": "フォロワーのみ", "privacy.public.long": "誰でも閲覧可、ホーム+ローカル+連合TL", diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index 2a07baab84..1b4dec20dc 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -66,11 +66,7 @@ class REST::StatusSerializer < ActiveModel::Serializer end def visibility_ex - if object.limited_visibility? - 'private' - else - object.visibility - end + object.visibility end def searchability