Redesign admin accounts index (#9340)
* Improve overview of accounts in admin UI - Display suspended status, role, last activity and IP prominently - Default to showing local accounts - Default to not showing suspended accounts * Remove unused strings * Fix tests * Allow filtering accounts by IP mask
This commit is contained in:
@ -1,18 +1,15 @@
|
||||
%tr
|
||||
%td.username
|
||||
= account.username
|
||||
%td
|
||||
- unless account.local?
|
||||
= link_to account.domain, admin_accounts_path(by_domain: account.domain)
|
||||
= admin_account_link_to(account)
|
||||
%td
|
||||
- if account.local?
|
||||
- if account.user.nil?
|
||||
= t("admin.accounts.moderation.suspended")
|
||||
- else
|
||||
= t("admin.accounts.roles.#{account.user.role}")
|
||||
%div{ style: 'margin: -2px 0' }= account_badge(account, all: true)
|
||||
%td
|
||||
- if account.user_current_sign_in_ip
|
||||
%samp= account.user_current_sign_in_ip
|
||||
- else
|
||||
= account.protocol.humanize
|
||||
\-
|
||||
%td
|
||||
= table_link_to 'circle', t('admin.accounts.web'), web_path("accounts/#{account.id}")
|
||||
= table_link_to 'globe', t('admin.accounts.public'), TagManager.instance.url_for(account)
|
||||
= table_link_to 'pencil', t('admin.accounts.edit'), admin_account_path(account.id)
|
||||
- if account.user_current_sign_in_at
|
||||
%time.time-ago{ datetime: account.user_current_sign_in_at.iso8601, title: l(account.user_current_sign_in_at) }= l account.user_current_sign_in_at
|
||||
- else
|
||||
\-
|
||||
|
@ -5,41 +5,19 @@
|
||||
.filter-subset
|
||||
%strong= t('admin.accounts.location.title')
|
||||
%ul
|
||||
%li= filter_link_to t('admin.accounts.location.all'), local: nil, remote: nil
|
||||
%li
|
||||
- if selected? local: '1', remote: nil
|
||||
= filter_link_to t('admin.accounts.location.local'), {local: nil, remote: nil}, {local: '1', remote: nil}
|
||||
- else
|
||||
= filter_link_to t('admin.accounts.location.local'), local: '1', remote: nil
|
||||
%li
|
||||
- if selected? remote: '1', local: nil
|
||||
= filter_link_to t('admin.accounts.location.remote'), {remote: nil, local: nil}, {remote: '1', local: nil}
|
||||
- else
|
||||
= filter_link_to t('admin.accounts.location.remote'), remote: '1', local: nil
|
||||
%li= filter_link_to t('admin.accounts.location.local'), remote: nil
|
||||
%li= filter_link_to t('admin.accounts.location.remote'), remote: '1'
|
||||
.filter-subset
|
||||
%strong= t('admin.accounts.moderation.title')
|
||||
%ul
|
||||
%li= filter_link_to t('admin.accounts.moderation.all'), silenced: nil, suspended: nil
|
||||
%li
|
||||
- if selected? silenced: '1'
|
||||
= filter_link_to t('admin.accounts.moderation.silenced'), {silenced: nil}, {silenced: '1'}
|
||||
- else
|
||||
= filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1'
|
||||
%li
|
||||
- if selected? suspended: '1'
|
||||
= filter_link_to t('admin.accounts.moderation.suspended'), {suspended: nil}, {suspended: '1'}
|
||||
- else
|
||||
= filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1'
|
||||
%li= filter_link_to t('admin.accounts.moderation.active'), silenced: nil, suspended: nil
|
||||
%li= filter_link_to t('admin.accounts.moderation.silenced'), silenced: '1', suspended: nil
|
||||
%li= filter_link_to t('admin.accounts.moderation.suspended'), suspended: '1', silenced: nil
|
||||
.filter-subset
|
||||
%strong= t('admin.accounts.role')
|
||||
%ul
|
||||
%li= filter_link_to t('admin.accounts.moderation.all'), staff: nil
|
||||
%li= filter_link_to t('admin.accounts.roles.staff'), staff: '1'
|
||||
.filter-subset
|
||||
%strong= t('admin.accounts.order.title')
|
||||
%ul
|
||||
%li= filter_link_to t('admin.accounts.order.most_recent'), alphabetic: nil
|
||||
%li= filter_link_to t('admin.accounts.order.alphabetic'), alphabetic: '1'
|
||||
|
||||
= form_tag admin_accounts_url, method: 'GET', class: 'simple_form' do
|
||||
.fields-group
|
||||
@ -60,9 +38,9 @@
|
||||
%thead
|
||||
%tr
|
||||
%th= t('admin.accounts.username')
|
||||
%th= t('admin.accounts.domain')
|
||||
%th
|
||||
%th
|
||||
%th= t('admin.accounts.role')
|
||||
%th= t('admin.accounts.most_recent_ip')
|
||||
%th= t('admin.accounts.most_recent_activity')
|
||||
%tbody
|
||||
= render @accounts
|
||||
|
||||
|
@ -68,7 +68,7 @@
|
||||
%time.formatted{ datetime: @account.user_current_sign_in_at.iso8601, title: l(@account.user_current_sign_in_at) }
|
||||
= l @account.user_current_sign_in_at
|
||||
- else
|
||||
Never
|
||||
\-
|
||||
- else
|
||||
%tr
|
||||
%th= t('admin.accounts.profile_url')
|
||||
|
Reference in New Issue
Block a user