Add admin setting to disable followers count
parent
0cd367e295
commit
a1c56fcef1
|
@ -29,6 +29,7 @@ module Admin
|
||||||
preview_sensitive_media
|
preview_sensitive_media
|
||||||
custom_css
|
custom_css
|
||||||
profile_directory
|
profile_directory
|
||||||
|
hide_followers_count
|
||||||
).freeze
|
).freeze
|
||||||
|
|
||||||
BOOLEAN_SETTINGS = %w(
|
BOOLEAN_SETTINGS = %w(
|
||||||
|
@ -41,6 +42,7 @@ module Admin
|
||||||
show_known_fediverse_at_about_page
|
show_known_fediverse_at_about_page
|
||||||
preview_sensitive_media
|
preview_sensitive_media
|
||||||
profile_directory
|
profile_directory
|
||||||
|
hide_followers_count
|
||||||
).freeze
|
).freeze
|
||||||
|
|
||||||
UPLOAD_SETTINGS = %w(
|
UPLOAD_SETTINGS = %w(
|
||||||
|
|
|
@ -37,7 +37,7 @@ class FollowerAccountsController < ApplicationController
|
||||||
|
|
||||||
def collection_presenter
|
def collection_presenter
|
||||||
options = { type: :ordered }
|
options = { type: :ordered }
|
||||||
options[:size] = @account.followers_count
|
options[:size] = @account.followers_count unless Setting.hide_followers_count
|
||||||
if params[:page].present?
|
if params[:page].present?
|
||||||
ActivityPub::CollectionPresenter.new(
|
ActivityPub::CollectionPresenter.new(
|
||||||
id: account_followers_url(@account, page: params.fetch(:page, 1)),
|
id: account_followers_url(@account, page: params.fetch(:page, 1)),
|
||||||
|
|
|
@ -61,7 +61,7 @@ module StreamEntriesHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def account_description(account)
|
def account_description(account)
|
||||||
prepend_str = [
|
prepend_stats = [
|
||||||
[
|
[
|
||||||
number_to_human(account.statuses_count, strip_insignificant_zeros: true),
|
number_to_human(account.statuses_count, strip_insignificant_zeros: true),
|
||||||
I18n.t('accounts.posts', count: account.statuses_count),
|
I18n.t('accounts.posts', count: account.statuses_count),
|
||||||
|
@ -71,14 +71,16 @@ module StreamEntriesHelper
|
||||||
number_to_human(account.following_count, strip_insignificant_zeros: true),
|
number_to_human(account.following_count, strip_insignificant_zeros: true),
|
||||||
I18n.t('accounts.following', count: account.following_count),
|
I18n.t('accounts.following', count: account.following_count),
|
||||||
].join(' '),
|
].join(' '),
|
||||||
|
]
|
||||||
|
|
||||||
[
|
unless Setting.hide_followers_count
|
||||||
|
prepend_stats << [
|
||||||
number_to_human(account.followers_count, strip_insignificant_zeros: true),
|
number_to_human(account.followers_count, strip_insignificant_zeros: true),
|
||||||
I18n.t('accounts.followers', count: account.followers_count),
|
I18n.t('accounts.followers', count: account.followers_count),
|
||||||
].join(' '),
|
].join(' ')
|
||||||
].join(', ')
|
end
|
||||||
|
|
||||||
[prepend_str, account.note].join(' · ')
|
[prepend_stats.join(', '), account.note].join(' · ')
|
||||||
end
|
end
|
||||||
|
|
||||||
def media_summary(status)
|
def media_summary(status)
|
||||||
|
|
|
@ -30,6 +30,8 @@ class Form::AdminSettings
|
||||||
:show_staff_badge=,
|
:show_staff_badge=,
|
||||||
:bootstrap_timeline_accounts,
|
:bootstrap_timeline_accounts,
|
||||||
:bootstrap_timeline_accounts=,
|
:bootstrap_timeline_accounts=,
|
||||||
|
:hide_followers_count,
|
||||||
|
:hide_followers_count=,
|
||||||
:flavour,
|
:flavour,
|
||||||
:flavour=,
|
:flavour=,
|
||||||
:skin,
|
:skin,
|
||||||
|
|
|
@ -51,4 +51,8 @@ class REST::AccountSerializer < ActiveModel::Serializer
|
||||||
def moved_and_not_nested?
|
def moved_and_not_nested?
|
||||||
object.moved? && object.moved_to_account.moved_to_account_id.nil?
|
object.moved? && object.moved_to_account.moved_to_account_id.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def followers_count
|
||||||
|
Setting.hide_followers_count ? -1 : object.followers_count
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
%span.counter-label= t('accounts.following', count: account.following_count)
|
%span.counter-label= t('accounts.following', count: account.following_count)
|
||||||
|
|
||||||
.counter{ class: active_nav_class(account_followers_url(account)) }
|
.counter{ class: active_nav_class(account_followers_url(account)) }
|
||||||
= link_to account_followers_url(account), title: number_with_delimiter(account.followers_count) do
|
= link_to account_followers_url(account), title: Setting.hide_followers_count ? nil : number_with_delimiter(account.followers_count) do
|
||||||
%span.counter-number= number_to_human account.followers_count, strip_insignificant_zeros: true
|
%span.counter-number= Setting.hide_followers_count ? '-' : (number_to_human account.followers_count, strip_insignificant_zeros: true)
|
||||||
%span.counter-label= t('accounts.followers', count: account.followers_count)
|
%span.counter-label= t('accounts.followers', count: account.followers_count)
|
||||||
.spacer
|
.spacer
|
||||||
.public-account-header__tabs__tabs__buttons
|
.public-account-header__tabs__tabs__buttons
|
||||||
|
|
|
@ -65,6 +65,9 @@
|
||||||
.fields-group
|
.fields-group
|
||||||
= f.input :profile_directory, as: :boolean, wrapper: :with_label, label: t('admin.settings.profile_directory.title'), hint: t('admin.settings.profile_directory.desc_html')
|
= f.input :profile_directory, as: :boolean, wrapper: :with_label, label: t('admin.settings.profile_directory.title'), hint: t('admin.settings.profile_directory.desc_html')
|
||||||
|
|
||||||
|
.fields-group
|
||||||
|
= f.input :hide_followers_count, as: :boolean, wrapper: :with_label, label: t('admin.settings.hide_followers_count.title'), hint: t('admin.settings.hide_followers_count.desc_html')
|
||||||
|
|
||||||
%hr.spacer/
|
%hr.spacer/
|
||||||
|
|
||||||
.fields-group
|
.fields-group
|
||||||
|
|
|
@ -28,9 +28,10 @@
|
||||||
%td.accounts-table__count.optional
|
%td.accounts-table__count.optional
|
||||||
= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
= number_to_human account.statuses_count, strip_insignificant_zeros: true
|
||||||
%small= t('accounts.posts', count: account.statuses_count).downcase
|
%small= t('accounts.posts', count: account.statuses_count).downcase
|
||||||
%td.accounts-table__count.optional
|
- unless Setting.hide_followers_count
|
||||||
= number_to_human account.followers_count, strip_insignificant_zeros: true
|
%td.accounts-table__count.optional
|
||||||
%small= t('accounts.followers', count: account.followers_count).downcase
|
= number_to_human account.followers_count, strip_insignificant_zeros: true
|
||||||
|
%small= t('accounts.followers', count: account.followers_count).downcase
|
||||||
%td.accounts-table__count
|
%td.accounts-table__count
|
||||||
- if account.last_status_at.present?
|
- if account.last_status_at.present?
|
||||||
%time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at
|
%time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at
|
||||||
|
|
|
@ -370,6 +370,9 @@ en:
|
||||||
hero:
|
hero:
|
||||||
desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
|
desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
|
||||||
title: Hero image
|
title: Hero image
|
||||||
|
hide_followers_count:
|
||||||
|
desc_html: Do not show followers count on user profiles
|
||||||
|
title: Hide followers count
|
||||||
mascot:
|
mascot:
|
||||||
desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
|
desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
|
||||||
title: Mascot image
|
title: Mascot image
|
||||||
|
|
|
@ -34,6 +34,7 @@ defaults: &defaults
|
||||||
reduce_motion: false
|
reduce_motion: false
|
||||||
system_font_ui: false
|
system_font_ui: false
|
||||||
noindex: false
|
noindex: false
|
||||||
|
hide_followers_count: false
|
||||||
flavour: 'glitch'
|
flavour: 'glitch'
|
||||||
skin: 'default'
|
skin: 'default'
|
||||||
aggregate_reblogs: true
|
aggregate_reblogs: true
|
||||||
|
|
Loading…
Reference in New Issue