diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/admin/accounts_controller.rb | 31 | ||||
-rw-r--r-- | app/javascript/styles/admin.scss | 16 | ||||
-rw-r--r-- | app/views/admin/accounts/show.html.haml | 10 | ||||
-rw-r--r-- | app/views/admin/reports/show.html.haml | 4 |
4 files changed, 44 insertions, 17 deletions
diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 4c41c4215..ef2f8c4c2 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -2,16 +2,43 @@ module Admin class AccountsController < BaseController + before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload] + before_action :require_remote_account!, only: [:subscribe, :unsubscribe, :redownload] + def index @accounts = filtered_accounts.page(params[:page]) end - def show - @account = Account.find(params[:id]) + def show; end + + def subscribe + Pubsubhubbub::SubscribeWorker.perform_async(@account.id) + redirect_to admin_account_path(@account.id) + end + + def unsubscribe + UnsubscribeService.new.call(@account) + redirect_to admin_account_path(@account.id) + end + + def redownload + @account.avatar = @account.avatar_remote_url + @account.header = @account.header_remote_url + @account.save! + + redirect_to admin_account_path(@account.id) end private + def set_account + @account = Account.find(params[:id]) + end + + def require_remote_account! + redirect_to admin_account_path(@account.id) if @account.local? + end + def filtered_accounts AccountFilter.new(filter_params).results end diff --git a/app/javascript/styles/admin.scss b/app/javascript/styles/admin.scss index d011548a7..541e57f32 100644 --- a/app/javascript/styles/admin.scss +++ b/app/javascript/styles/admin.scss @@ -245,19 +245,13 @@ .report-status__actions { flex: 0 0 auto; - position: relative; - - .nsfw-button { - color: $white; - font-size: 11px; - width: 11px; - display: block; - } + display: flex; + flex-direction: column; - .trash-button { - position: absolute; - bottom: 10px; + .icon-button { font-size: 24px; width: 24px; + text-align: center; + margin-bottom: 10px; } } diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 1a9bd2c48..d91ba9c78 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -67,11 +67,17 @@ %th= t('.targeted_reports') %td= link_to pluralize(@account.targeted_reports.count, t('.report')), admin_reports_path(target_account_id: @account.id) -- if @account.local? - %div{ style: 'float: right' } + +%div{ style: 'float: right' } + - if @account.local? = link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' - if @account.user&.otp_required_for_login? = link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button' + - else + = link_to @account.subscribed? ? t('admin.accounts.resubscribe') : t('admin.accounts.subscribe'), subscribe_admin_account_path(@account.id), method: :post, class: 'button' + - if @account.subscribed? + = link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative' + = link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' %div{ style: 'float: left' } - if @account.silenced? diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 560031079..7db5927ab 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -25,8 +25,8 @@ .entry= render partial: 'stream_entries/simple_status', locals: { status: status } .report-status__actions - unless status.media_attachments.empty? - = link_to admin_report_reported_status_path(@report, status, status: { sensitive: !status.sensitive }), method: :patch, class: 'nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do - = t("admin.reports.nsfw.#{!status.sensitive}") + = link_to admin_report_reported_status_path(@report, status, status: { sensitive: !status.sensitive }), method: :patch, class: 'icon-button nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do + = fa_icon status.sensitive? ? 'eye' : 'eye-slash' = link_to admin_report_reported_status_path(@report, status), method: :delete, class: 'icon-button trash-button', title: t('admin.reports.delete'), data: { confirm: t('admin.reports.are_you_sure') } do = fa_icon 'trash' |