Browse Source

Change icons of features on admin dashboard to remove bias (#10366)

Red crosses implied that it was bad/unexpected that certain features
were not enabled. In reality, they are options, so showing a green
or grey power-off icon is more appropriate.

Add status of timeline preview as well

Fix sample accounts changing too frequently due to wrong query

Sample accounts are intended to be sorted by popularity
pull/4/head
Eugen Rochko 5 years ago
committed by GitHub
parent
commit
e117964325
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 43 additions and 72 deletions
  1. +1
    -0
      app/controllers/admin/dashboard_controller.rb
  2. +1
    -1
      app/controllers/directories_controller.rb
  3. +10
    -0
      app/helpers/admin/dashboard_helper.rb
  4. +5
    -0
      app/javascript/styles/mastodon/admin.scss
  5. +1
    -1
      app/models/account.rb
  6. +24
    -70
      app/views/admin/dashboard/index.html.haml
  7. +1
    -0
      config/locales/en.yml

+ 1
- 0
app/controllers/admin/dashboard_controller.rb View File

@ -29,6 +29,7 @@ module Admin
@hidden_service = ENV['ALLOW_ACCESS_TO_HIDDEN_SERVICE'] == 'true' @hidden_service = ENV['ALLOW_ACCESS_TO_HIDDEN_SERVICE'] == 'true'
@trending_hashtags = TrendingTags.get(7) @trending_hashtags = TrendingTags.get(7)
@profile_directory = Setting.profile_directory @profile_directory = Setting.profile_directory
@timeline_preview = Setting.timeline_preview
end end
private private

+ 1
- 1
app/controllers/directories_controller.rb View File

@ -32,7 +32,7 @@ class DirectoriesController < ApplicationController
end end
def set_accounts def set_accounts
@accounts = Account.discoverable.page(params[:page]).per(40).tap do |query|
@accounts = Account.discoverable.by_recent_status.page(params[:page]).per(40).tap do |query|
query.merge!(Account.tagged_with(@tag.id)) if @tag query.merge!(Account.tagged_with(@tag.id)) if @tag
end end
end end

+ 10
- 0
app/helpers/admin/dashboard_helper.rb View File

@ -0,0 +1,10 @@
# frozen_string_literal: true
module Admin::DashboardHelper
def feature_hint(feature, enabled)
indicator = safe_join([enabled ? t('simple_form.yes') : t('simple_form.no'), fa_icon('power-off fw')], ' ')
class_names = enabled ? 'pull-right positive-hint' : 'pull-right neutral-hint'
safe_join([feature, content_tag(:span, indicator, class: class_names)])
end
end

+ 5
- 0
app/javascript/styles/mastodon/admin.scss View File

@ -220,6 +220,11 @@ $content-width: 840px;
color: $error-value-color; color: $error-value-color;
font-weight: 500; font-weight: 500;
} }
.neutral-hint {
color: $dark-text-color;
font-weight: 500;
}
} }
@media screen and (max-width: $no-columns-breakpoint) { @media screen and (max-width: $no-columns-breakpoint) {

+ 1
- 1
app/models/account.rb View File

@ -94,7 +94,7 @@ class Account < ApplicationRecord
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) } scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
scope :searchable, -> { without_suspended.where(moved_to_account_id: nil) } scope :searchable, -> { without_suspended.where(moved_to_account_id: nil) }
scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)).by_recent_status }
scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)) }
scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) } scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) }
scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc')) } scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc')) }
scope :popular, -> { order('account_stats.followers_count desc') } scope :popular, -> { order('account_stats.followers_count desc') }

+ 24
- 70
app/views/admin/dashboard/index.html.haml View File

@ -40,35 +40,17 @@
%h4= t 'admin.dashboard.features' %h4= t 'admin.dashboard.features'
%ul %ul
%li %li
= link_to t('admin.dashboard.feature_registrations'), edit_admin_settings_path
- if @registrations_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
= link_to t('admin.dashboard.feature_invites'), edit_admin_settings_path
- if @invites_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
= link_to t('admin.dashboard.feature_deletions'), edit_admin_settings_path
- if @deletions_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
= link_to t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path
- if @profile_directory
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
= link_to t('admin.dashboard.feature_relay'), admin_relays_path
- if @relay_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
= feature_hint(link_to(t('admin.dashboard.feature_registrations'), edit_admin_settings_path), @registrations_enabled)
%li
= feature_hint(link_to(t('admin.dashboard.feature_invites'), edit_admin_settings_path), @invites_enabled)
%li
= feature_hint(link_to(t('admin.dashboard.feature_deletions'), edit_admin_settings_path), @deletions_enabled)
%li
= feature_hint(link_to(t('admin.dashboard.feature_profile_directory'), edit_admin_settings_path), @profile_directory)
%li
= feature_hint(link_to(t('admin.dashboard.feature_timeline_preview'), edit_admin_settings_path), @timeline_preview)
%li
= feature_hint(link_to(t('admin.dashboard.feature_relay'), admin_relays_path), @relay_enabled)
.dashboard__widgets__versions .dashboard__widgets__versions
%div %div
@ -103,47 +85,19 @@
%h4= t 'admin.dashboard.config' %h4= t 'admin.dashboard.config'
%ul %ul
%li %li
= t('admin.dashboard.search')
- if @search_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
= t('admin.dashboard.single_user_mode')
- if @single_user_mode
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
LDAP
- if @ldap_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
CAS
- if @cas_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
SAML
- if @saml_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
PAM
- if @pam_enabled
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
%li
= t 'admin.dashboard.hidden_service'
- if @hidden_service
%span.pull-right.positive-hint= fa_icon 'check fw'
- else
%span.pull-right.negative-hint= fa_icon 'times fw'
= feature_hint(t('admin.dashboard.search'), @search_enabled)
%li
= feature_hint(t('admin.dashboard.single_user_mode'), @single_user_mode)
%li
= feature_hint('LDAP', @ldap_enabled)
%li
= feature_hint('CAS', @cas_enabled)
%li
= feature_hint('SAML', @saml_enabled)
%li
= feature_hint('PAM', @pam_enabled)
%li
= feature_hint(t('admin.dashboard.hidden_service'), @hidden_service)
.dashboard__widgets__trends .dashboard__widgets__trends
%div %div

+ 1
- 0
config/locales/en.yml View File

@ -245,6 +245,7 @@ en:
feature_profile_directory: Profile directory feature_profile_directory: Profile directory
feature_registrations: Registrations feature_registrations: Registrations
feature_relay: Federation relay feature_relay: Federation relay
feature_timeline_preview: Timeline preview
features: Features features: Features
hidden_service: Federation with hidden services hidden_service: Federation with hidden services
open_reports: open reports open_reports: open reports

Loading…
Cancel
Save