diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb index 4151a9afed..590eed713c 100644 --- a/app/models/user_settings.rb +++ b/app/models/user_settings.rb @@ -15,6 +15,7 @@ class UserSettings setting :default_language, default: nil setting :default_sensitive, default: false setting :default_privacy, default: nil, in: %w(public unlisted private) + setting :default_quote_policy, default: 'public', in: %w(public followers nobody) setting_inverse_alias :indexable, :noindex diff --git a/app/views/settings/preferences/other/show.html.haml b/app/views/settings/preferences/other/show.html.haml index 92df8e5213..dd79695db7 100644 --- a/app/views/settings/preferences/other/show.html.haml +++ b/app/views/settings/preferences/other/show.html.haml @@ -38,6 +38,17 @@ required: false, wrapper: :with_label + .fields-row + .fields-group.fields-row__column.fields-row__column-6 + = ff.input :default_quote_policy, + collection: %w(public followers nobody), + include_blank: false, + label_method: ->(policy) { I18n.t("statuses.quote_policies.#{policy}") }, + label: I18n.t('simple_form.labels.defaults.setting_default_quote_policy'), + hint: I18n.t('simple_form.hints.defaults.setting_default_quote_policy'), + required: false, + wrapper: :with_label + .fields-group = ff.input :default_sensitive, hint: I18n.t('simple_form.hints.defaults.setting_default_sensitive'), diff --git a/config/locales/en.yml b/config/locales/en.yml index 63ef106d5c..83695cd6e7 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1859,6 +1859,10 @@ en: limit: You have already pinned the maximum number of posts ownership: Someone else's post cannot be pinned reblog: A boost cannot be pinned + quote_policies: + followers: Followers and mentioned users + nobody: Only mentioned users + public: Everyone title: '%{name}: "%{quote}"' visibilities: direct: Direct diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 5e162a0d64..59e58a4ed1 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -56,6 +56,7 @@ en: scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones. setting_aggregate_reblogs: Do not show new boosts for posts that have been recently boosted (only affects newly-received boosts) setting_always_send_emails: Normally e-mail notifications won't be sent when you are actively using Mastodon + setting_default_quote_policy: Mentioned users are always allowed to quote. This setting will only take effect for posts created with the next Mastodon version, but you can select your preference in preparation setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click setting_display_media_default: Hide media marked as sensitive setting_display_media_hide_all: Always hide media @@ -229,6 +230,7 @@ en: setting_boost_modal: Show confirmation dialog before boosting setting_default_language: Posting language setting_default_privacy: Posting privacy + setting_default_quote_policy: Who can quote setting_default_sensitive: Always mark media as sensitive setting_delete_modal: Show confirmation dialog before deleting a post setting_disable_hover_cards: Disable profile preview on hover