From 5426f06ac29b9ef4d302d3f2d13b315dcf89e079 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 15 Feb 2017 00:22:58 +0100 Subject: [PATCH] Fix admin UI for accounts somewhat --- app/assets/stylesheets/admin.scss | 1 + app/controllers/admin/accounts_controller.rb | 23 ++++++---- app/views/admin/accounts/index.html.haml | 14 +----- app/views/admin/accounts/show.html.haml | 46 ++++++++++++++++---- config/routes.rb | 5 ++- 5 files changed, 58 insertions(+), 31 deletions(-) diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index d834096f4..7d056bc06 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -76,6 +76,7 @@ .content-wrapper { flex: 2; + overflow: auto; } .content { diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 95107b3dc..df2c7bebf 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -19,19 +19,26 @@ class Admin::AccountsController < ApplicationController def show; end - def update - if @account.update(account_params) - redirect_to admin_accounts_path - else - render :show - end - end - def suspend Admin::SuspensionWorker.perform_async(@account.id) redirect_to admin_accounts_path end + def unsuspend + @account.update(suspended: false) + redirect_to admin_accounts_path + end + + def silence + @account.update(silenced: true) + redirect_to admin_accounts_path + end + + def unsilence + @account.update(silenced: false) + redirect_to admin_accounts_path + end + private def set_account diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml index a93aa9143..f8ed4ef97 100644 --- a/app/views/admin/accounts/index.html.haml +++ b/app/views/admin/accounts/index.html.haml @@ -25,9 +25,7 @@ %tr %th Username %th Domain - %th Subscribed - %th Silenced - %th Suspended + %th= fa_icon 'paper-plane-o' %th %tbody - @accounts.each do |account| @@ -43,16 +41,6 @@ %i.fa.fa-check - else %i.fa.fa-times - %td - - if account.silenced? - %i.fa.fa-check - - else - %i.fa.fa-times - %td - - if account.suspended? - %i.fa.fa-check - - else - %i.fa.fa-times %td = table_link_to 'circle', 'Web', web_path("accounts/#{account.id}") = table_link_to 'globe', 'Public', TagManager.instance.url_for(account) diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 7d3f449e5..206d6f81e 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -18,8 +18,11 @@ %th E-mail %td= @account.user.email %tr - %th Current IP + %th Most recent IP %td= @account.user.current_sign_in_ip + %tr + %th Most recent activity + %td= l @account.user.current_sign_in_at - else %tr %th Profile URL @@ -27,14 +30,39 @@ %tr %th Feed URL %td= link_to @account.remote_url + %tr + %th PuSH subscription expires + %td + - if @account.subscribed? + = l @account.subscription_expires_at + - else + Not subscribed + %tr + %th Salmon URL + %td= link_to @account.salmon_url -= simple_form_for @account, url: admin_account_path(@account.id) do |f| - = render 'shared/error_messages', object: @account - - = f.input :silenced, as: :boolean, wrapper: :with_label - = f.input :suspended, as: :boolean, wrapper: :with_label + %tr + %th Follows + %td= @account.following.count + %tr + %th Followers + %td= @account.followers.count + %tr + %th Statuses + %td= @account.statuses.count + %tr + %th Media attachments + %td + = @account.media_attachments.count + = surround '(', ')' do + = number_to_human_size @account.media_attachments.sum('file_file_size') - .actions - = f.button :button, t('generic.save_changes'), type: :submit +- if @account.silenced? + = link_to 'Undo silence', unsilence_admin_account_path(@account.id), method: :post, class: 'button' +- else + = link_to 'Silence', silence_admin_account_path(@account.id), method: :post, class: 'button' -= link_to 'Perform full suspension', suspend_admin_account_path(@account.id), method: :post, data: { confirm: 'Are you sure?' }, class: 'button' +- if @account.suspended? + = link_to 'Undo suspension', unsuspend_admin_account_path(@account.id), method: :post, class: 'button' +- else + = link_to 'Perform full suspension', suspend_admin_account_path(@account.id), method: :post, data: { confirm: 'Are you sure?' }, class: 'button' diff --git a/config/routes.rb b/config/routes.rb index 7f55413ee..419b17ce1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -67,9 +67,12 @@ Rails.application.routes.draw do resources :domain_blocks, only: [:index, :create] resources :settings, only: [:index, :update] - resources :accounts, only: [:index, :show, :update] do + resources :accounts, only: [:index, :show] do member do + post :silence + post :unsilence post :suspend + post :unsuspend end end end