Use heading actions and placeholders in settings (#12801)

This commit:

- Refactors centered text blocks currently used for placeholders
  for empty tables and puts styles for it in separate class -
  .centered-text, simply aliasing text-align: center. Which is
  furtherly used in this commit.

- Improves applications settings page to use heading actions, moving
  "New application" button there, and displaying placeholder "You
  have no applications" in place of empty table.

- Improves custom emoji settings page to use heading action
  for "Upload" button, making it more easily accessible without
  need to scroll through all of the emojis.

- Improves email domain blocks settings page, moving "Add new" to the
  heading actions and using placeholder "No e-mail domains currently
  blacklisted" instead of showing empty table.
This commit is contained in:
Sasha Sorokin 2020-01-11 08:14:45 +07:00 committed by Eugen Rochko
parent 630b5136ec
commit 36426ed4ad
7 changed files with 43 additions and 28 deletions

View File

@ -878,3 +878,7 @@ a.name-tag,
color: $primary-text-color; color: $primary-text-color;
} }
} }
.center-text {
text-align: center;
}

View File

@ -4,6 +4,9 @@
- content_for :header_tags do - content_for :header_tags do
= javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous' = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
- content_for :heading_actions do
= link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button'
.filters .filters
.filter-subset .filter-subset
%strong= t('admin.accounts.location.title') %strong= t('admin.accounts.location.title')
@ -81,6 +84,3 @@
= paginate @custom_emojis = paginate @custom_emojis
%hr.spacer/
= link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button'

View File

@ -1,14 +1,19 @@
- content_for :page_title do - content_for :page_title do
= t('admin.email_domain_blocks.title') = t('admin.email_domain_blocks.title')
.table-wrapper - content_for :heading_actions do
%table.table = link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button'
%thead
%tr - if @email_domain_blocks.count == 0
%th= t('admin.email_domain_blocks.domain') %div.muted-hint.center-text=t 'admin.email_domain_blocks.empty'
%th - else
%tbody .table-wrapper
= render @email_domain_blocks %table.table
%thead
%tr
%th= t('admin.email_domain_blocks.domain')
%th
%tbody
= render @email_domain_blocks
= paginate @email_domain_blocks = paginate @email_domain_blocks
= link_to t('admin.email_domain_blocks.add_new'), new_admin_email_domain_block_path, class: 'button'

View File

@ -5,8 +5,7 @@
= link_to t('filters.new.title'), new_filter_path, class: 'button' = link_to t('filters.new.title'), new_filter_path, class: 'button'
- if @filters.count == 0 - if @filters.count == 0
%div{ style: 'display: flex; justify-content: center' } %div.muted-hint.center-text= t 'filters.index.empty'
%div.muted-hint= t 'filters.index.empty'
- else - else
.table-wrapper .table-wrapper
%table.table %table.table

View File

@ -1,20 +1,25 @@
- content_for :page_title do - content_for :page_title do
= t('doorkeeper.applications.index.title') = t('doorkeeper.applications.index.title')
.table-wrapper - content_for :heading_actions do
%table.table = link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'
%thead
%tr - if @applications.count == 0
%th= t('doorkeeper.applications.index.application') %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty'
%th= t('doorkeeper.applications.index.scopes') - else
%th .table-wrapper
%tbody %table.table
- @applications.each do |application| %thead
%tr %tr
%td= link_to application.name, settings_application_path(application) %th= t('doorkeeper.applications.index.application')
%th= application.scopes %th= t('doorkeeper.applications.index.scopes')
%td %th
= table_link_to 'times', t('doorkeeper.applications.index.delete'), settings_application_path(application), method: :delete, data: { confirm: t('doorkeeper.applications.confirmations.destroy') } %tbody
- @applications.each do |application|
%tr
%td= link_to application.name, settings_application_path(application)
%th= application.scopes
%td
= table_link_to 'times', t('doorkeeper.applications.index.delete'), settings_application_path(application), method: :delete, data: { confirm: t('doorkeeper.applications.confirmations.destroy') }
= paginate @applications = paginate @applications
= link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'

View File

@ -38,6 +38,7 @@ en:
application: Application application: Application
callback_url: Callback URL callback_url: Callback URL
delete: Delete delete: Delete
empty: You have no applications.
name: Name name: Name
new: New application new: New application
scopes: Scopes scopes: Scopes

View File

@ -339,6 +339,7 @@ en:
delete: Delete delete: Delete
destroyed_msg: Successfully deleted e-mail domain from blacklist destroyed_msg: Successfully deleted e-mail domain from blacklist
domain: Domain domain: Domain
empty: No e-mail domains currenly blacklisted.
new: new:
create: Add domain create: Add domain
title: New e-mail blacklist entry title: New e-mail blacklist entry