]> cat aescling's git repositories - mastodon.git/commitdiff
Change icons of features on admin dashboard to remove bias (#10366)
authorEugen Rochko <eugen@zeonfederated.com>
Tue, 26 Mar 2019 00:24:19 +0000 (01:24 +0100)
committerGitHub <noreply@github.com>
Tue, 26 Mar 2019 00:24:19 +0000 (01:24 +0100)
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

app/controllers/admin/dashboard_controller.rb
app/controllers/directories_controller.rb
app/helpers/admin/dashboard_helper.rb [new file with mode: 0644]
app/javascript/styles/mastodon/admin.scss
app/models/account.rb
app/views/admin/dashboard/index.html.haml
config/locales/en.yml

index 22bbcec19e7829c14bd8ce23376aab6b4a501678..f23ed15086214372da97698925986669d6891636 100644 (file)
@@ -29,6 +29,7 @@ module Admin
       @hidden_service        = ENV['ALLOW_ACCESS_TO_HIDDEN_SERVICE'] == 'true'
       @trending_hashtags     = TrendingTags.get(7)
       @profile_directory     = Setting.profile_directory
+      @timeline_preview      = Setting.timeline_preview
     end
 
     private
index ff7ff4a428154fb8b178689a73339d47f8164155..5949076740fac499b0f3842bca6c3021b6c8d69f 100644 (file)
@@ -32,7 +32,7 @@ class DirectoriesController < ApplicationController
   end
 
   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
     end
   end
diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb
new file mode 100644 (file)
index 0000000..4ee2cde
--- /dev/null
@@ -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
index f6bfe44cf8f19fd9db6cc5463078fa66b90e07d2..fd5c08f043ed8636c5147d00d3df8dd60066bb81 100644 (file)
@@ -220,6 +220,11 @@ $content-width: 840px;
       color: $error-value-color;
       font-weight: 500;
     }
+
+    .neutral-hint {
+      color: $dark-text-color;
+      font-weight: 500;
+    }
   }
 
   @media screen and (max-width: $no-columns-breakpoint) {
index c2a0709f99bb323387533c880cbf7a6468bd0115..51e01246e63b49d18d5263b1c57e55c3113e4dfb 100644 (file)
@@ -94,7 +94,7 @@ class Account < ApplicationRecord
   scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
   scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
   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 :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') }
index fa3d70e9eddd4b45d5bd53ffedc55926c595f1e0..d448e386297e2e4492d438ccdccef0db41f291c3 100644 (file)
       %h4= t 'admin.dashboard.features'
       %ul
         %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
     %div
       %h4= t 'admin.dashboard.config'
       %ul
         %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
     %div
index b0bf2539cde42594aa0448e34537ce7fe36c347f..ad1332fd2b2e5fa92d01b965afda3495b9c8ea42 100644 (file)
@@ -245,6 +245,7 @@ en:
       feature_profile_directory: Profile directory
       feature_registrations: Registrations
       feature_relay: Federation relay
+      feature_timeline_preview: Timeline preview
       features: Features
       hidden_service: Federation with hidden services
       open_reports: open reports