Adding index overview for reports in admin UI
This commit is contained in:
		
							
								
								
									
										17
									
								
								app/controllers/admin/reports_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								app/controllers/admin/reports_controller.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| # frozen_string_literal: true | ||||
|  | ||||
| class Admin::ReportsController < ApplicationController | ||||
|   before_action :require_admin! | ||||
|  | ||||
|   layout 'admin' | ||||
|  | ||||
|   def index | ||||
|     @reports = Report.includes(:account, :target_account).paginate(page: params[:page], per_page: 40) | ||||
|     @reports = params[:action_taken].present? ? @reports.resolved : @reports.unresolved | ||||
|   end | ||||
|  | ||||
|   def show | ||||
|     @report   = Report.find(params[:id]) | ||||
|     @statuses = Status.where(id: @report.status_ids) | ||||
|   end | ||||
| end | ||||
| @@ -77,7 +77,7 @@ class Status < ApplicationRecord | ||||
|  | ||||
|   def permitted?(other_account = nil) | ||||
|     if private_visibility? | ||||
|       (account.id == other_account&.id || other_account&.following?(account) || mentions.include?(other_account)) | ||||
|       (account.id == other_account&.id || other_account&.following?(account) || mentions.where(account: other_account).exists?) | ||||
|     else | ||||
|       other_account.nil? || !account.blocking?(other_account) | ||||
|     end | ||||
|   | ||||
| @@ -22,7 +22,11 @@ | ||||
|         %td= @account.user.current_sign_in_ip | ||||
|       %tr | ||||
|         %th Most recent activity | ||||
|         %td= l @account.user.current_sign_in_at | ||||
|         %td | ||||
|           - if @account.user.current_sign_in_at | ||||
|             = l @account.user.current_sign_in_at | ||||
|           - else | ||||
|             Never | ||||
|     - else | ||||
|       %tr | ||||
|         %th Profile URL | ||||
|   | ||||
							
								
								
									
										27
									
								
								app/views/admin/reports/index.html.haml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								app/views/admin/reports/index.html.haml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| - content_for :page_title do | ||||
|   Reports | ||||
|  | ||||
| .filters | ||||
|   .filter-subset | ||||
|     %strong Status | ||||
|     %ul | ||||
|       %li= filter_link_to 'Unresolved', action_taken: nil | ||||
|       %li= filter_link_to 'Resolved', action_taken: '1' | ||||
|  | ||||
| %table.table | ||||
|   %thead | ||||
|     %tr | ||||
|       %th ID | ||||
|       %th Target | ||||
|       %th Reported by | ||||
|       %th Comment | ||||
|       %th | ||||
|   %tbody | ||||
|     - @reports.each do |report| | ||||
|       %tr | ||||
|         %td= "##{report.id}" | ||||
|         %td= link_to report.target_account.acct, admin_account_path(report.target_account.id) | ||||
|         %td= link_to report.account.acct, admin_account_path(report.account.id) | ||||
|         %td= truncate(report.comment, length: 30, separator: ' ') | ||||
|         %td= table_link_to 'circle', 'View', admin_report_path(report) | ||||
| = will_paginate @reports, pagination_options | ||||
							
								
								
									
										2
									
								
								app/views/admin/reports/show.html.haml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								app/views/admin/reports/show.html.haml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| - content_for :page_title do | ||||
|   = "Report ##{@report.id}" | ||||
| @@ -13,6 +13,7 @@ SimpleNavigation::Configuration.run do |navigation| | ||||
|     end | ||||
|  | ||||
|     primary.item :admin, safe_join([fa_icon('cogs fw'), 'Administration']), admin_accounts_url, if: proc { current_user.admin? } do |admin| | ||||
|       admin.item :reports, safe_join([fa_icon('flag fw'), 'Reports']), admin_reports_url, highlights_on: %r{/admin/reports} | ||||
|       admin.item :accounts, safe_join([fa_icon('users fw'), 'Accounts']), admin_accounts_url, highlights_on: %r{/admin/accounts} | ||||
|       admin.item :pubsubhubbubs, safe_join([fa_icon('paper-plane-o fw'), 'PubSubHubbub']), admin_pubsubhubbub_index_url | ||||
|       admin.item :domain_blocks, safe_join([fa_icon('lock fw'), 'Domain Blocks']), admin_domain_blocks_url | ||||
|   | ||||
| @@ -66,6 +66,7 @@ Rails.application.routes.draw do | ||||
|     resources :pubsubhubbub, only: [:index] | ||||
|     resources :domain_blocks, only: [:index, :create] | ||||
|     resources :settings, only: [:index, :update] | ||||
|     resources :reports, only: [:index, :show] | ||||
|  | ||||
|     resources :accounts, only: [:index, :show] do | ||||
|       member do | ||||
|   | ||||
		Reference in New Issue
	
	Block a user