diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss index 54b65bfc8c..c007eb4b57 100644 --- a/app/javascript/styles/mastodon/accounts.scss +++ b/app/javascript/styles/mastodon/accounts.scss @@ -202,7 +202,8 @@ } .account-role, -.simple_form .recommended { +.simple_form .recommended, +.simple_form .not_recommended { display: inline-block; padding: 4px 6px; cursor: default; @@ -227,6 +228,12 @@ } } +.simple_form .not_recommended { + color: lighten($error-red, 12%); + background-color: rgba(lighten($error-red, 12%), 0.1); + border-color: rgba(lighten($error-red, 12%), 0.5); +} + .account__header__fields { max-width: 100vw; padding: 0; diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 9909038590..a6419821f4 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -102,7 +102,8 @@ code { } } - .recommended { + .recommended, + .not_recommended { position: absolute; margin: 0 4px; margin-top: -2px; diff --git a/app/models/account.rb b/app/models/account.rb index d25afeb892..1be7b4d12c 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -258,6 +258,10 @@ class Account < ApplicationRecord update!(memorial: true) end + def trendable + boolean_with_default('trendable', Setting.trendable_by_default) + end + def sign? true end diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index d7896bbc0e..64687b7a60 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -81,7 +81,7 @@ = f.input :trends, as: :boolean, wrapper: :with_label, label: t('admin.settings.trends.title'), hint: t('admin.settings.trends.desc_html') .fields-group - = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, label: t('admin.settings.trendable_by_default.title'), hint: t('admin.settings.trendable_by_default.desc_html') + = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, label: t('admin.settings.trendable_by_default.title'), hint: t('admin.settings.trendable_by_default.desc_html'), recommended: :not_recommended .fields-group = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 42a7afb33c..1bebae5e93 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -51,7 +51,7 @@ ignore_unused: - 'activerecord.errors.*' - '{devise,pagination,doorkeeper}.*' - '{date,datetime,time,number}.*' - - 'simple_form.{yes,no,recommended}' + - 'simple_form.{yes,no,recommended,not_recommended}' - 'simple_form.{placeholders,hints,labels}.*' - 'simple_form.{error_notification,required}.:' - 'errors.messages.*' diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb index 3a2097d2fb..92cffc5a2a 100644 --- a/config/initializers/simple_form.rb +++ b/config/initializers/simple_form.rb @@ -11,7 +11,10 @@ end module RecommendedComponent def recommended(_wrapper_options = nil) return unless options[:recommended] - options[:label_text] = ->(raw_label_text, _required_label_text, _label_present) { safe_join([raw_label_text, ' ', content_tag(:span, I18n.t('simple_form.recommended'), class: 'recommended')]) } + + key = options[:recommended].is_a?(Symbol) ? options[:recommended] : :recommended + options[:label_text] = ->(raw_label_text, _required_label_text, _label_present) { safe_join([raw_label_text, ' ', content_tag(:span, I18n.t(key, scope: 'simple_form'), class: key)]) } + nil end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 0b721c163d..9f047f523a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -808,8 +808,8 @@ en: title: Allow unauthenticated access to public timeline title: Site settings trendable_by_default: - desc_html: Affects hashtags that have not been previously disallowed - title: Allow hashtags to trend without prior review + desc_html: Specific trending content can still be explicitly disallowed + title: Allow trends without prior review trends: desc_html: Publicly display previously reviewed content that is currently trending title: Trends diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 28f78d5000..ddc83e8965 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -253,6 +253,7 @@ en: events: Enabled events url: Endpoint URL 'no': 'No' + not_recommended: Not recommended recommended: Recommended required: mark: "*"