Add admin setting to disable followers count

master
Thibaut Girka 5 years ago committed by ThibG
parent 0cd367e295
commit a1c56fcef1
  1. 2
      app/controllers/admin/settings_controller.rb
  2. 2
      app/controllers/follower_accounts_controller.rb
  3. 12
      app/helpers/stream_entries_helper.rb
  4. 2
      app/models/form/admin_settings.rb
  5. 4
      app/serializers/rest/account_serializer.rb
  6. 4
      app/views/accounts/_header.html.haml
  7. 3
      app/views/admin/settings/edit.html.haml
  8. 7
      app/views/directories/index.html.haml
  9. 3
      config/locales/en.yml
  10. 1
      config/settings.yml

@ -29,6 +29,7 @@ module Admin
preview_sensitive_media
custom_css
profile_directory
hide_followers_count
).freeze
BOOLEAN_SETTINGS = %w(
@ -41,6 +42,7 @@ module Admin
show_known_fediverse_at_about_page
preview_sensitive_media
profile_directory
hide_followers_count
).freeze
UPLOAD_SETTINGS = %w(

@ -37,7 +37,7 @@ class FollowerAccountsController < ApplicationController
def collection_presenter
options = { type: :ordered }
options[:size] = @account.followers_count
options[:size] = @account.followers_count unless Setting.hide_followers_count
if params[:page].present?
ActivityPub::CollectionPresenter.new(
id: account_followers_url(@account, page: params.fetch(:page, 1)),

@ -61,7 +61,7 @@ module StreamEntriesHelper
end
def account_description(account)
prepend_str = [
prepend_stats = [
[
number_to_human(account.statuses_count, strip_insignificant_zeros: true),
I18n.t('accounts.posts', count: account.statuses_count),
@ -71,14 +71,16 @@ module StreamEntriesHelper
number_to_human(account.following_count, strip_insignificant_zeros: true),
I18n.t('accounts.following', count: account.following_count),
].join(' '),
]
[
unless Setting.hide_followers_count
prepend_stats << [
number_to_human(account.followers_count, strip_insignificant_zeros: true),
I18n.t('accounts.followers', count: account.followers_count),
].join(' '),
].join(', ')
].join(' ')
end
[prepend_str, account.note].join(' · ')
[prepend_stats.join(', '), account.note].join(' · ')
end
def media_summary(status)

@ -30,6 +30,8 @@ class Form::AdminSettings
:show_staff_badge=,
:bootstrap_timeline_accounts,
:bootstrap_timeline_accounts=,
:hide_followers_count,
:hide_followers_count=,
:flavour,
:flavour=,
:skin,

@ -51,4 +51,8 @@ class REST::AccountSerializer < ActiveModel::Serializer
def moved_and_not_nested?
object.moved? && object.moved_to_account.moved_to_account_id.nil?
end
def followers_count
Setting.hide_followers_count ? -1 : object.followers_count
end
end

@ -24,8 +24,8 @@
%span.counter-label= t('accounts.following', count: account.following_count)
.counter{ class: active_nav_class(account_followers_url(account)) }
= link_to account_followers_url(account), title: number_with_delimiter(account.followers_count) do
%span.counter-number= number_to_human account.followers_count, strip_insignificant_zeros: true
= link_to account_followers_url(account), title: Setting.hide_followers_count ? nil : number_with_delimiter(account.followers_count) do
%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)
.spacer
.public-account-header__tabs__tabs__buttons

@ -65,6 +65,9 @@
.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')
.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/
.fields-group

@ -28,9 +28,10 @@
%td.accounts-table__count.optional
= number_to_human account.statuses_count, strip_insignificant_zeros: true
%small= t('accounts.posts', count: account.statuses_count).downcase
%td.accounts-table__count.optional
= number_to_human account.followers_count, strip_insignificant_zeros: true
%small= t('accounts.followers', count: account.followers_count).downcase
- unless Setting.hide_followers_count
%td.accounts-table__count.optional
= number_to_human account.followers_count, strip_insignificant_zeros: true
%small= t('accounts.followers', count: account.followers_count).downcase
%td.accounts-table__count
- 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

@ -370,6 +370,9 @@ en:
hero:
desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to instance thumbnail
title: Hero image
hide_followers_count:
desc_html: Do not show followers count on user profiles
title: Hide followers count
mascot:
desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
title: Mascot image

@ -34,6 +34,7 @@ defaults: &defaults
reduce_motion: false
system_font_ui: false
noindex: false
hide_followers_count: false
flavour: 'glitch'
skin: 'default'
aggregate_reblogs: true

Loading…
Cancel
Save