From 24ba7c9762a583f3e1105162f4a43a22a17a4627 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 16 Feb 2017 02:28:10 +0100 Subject: Adding index overview for reports in admin UI --- app/controllers/admin/reports_controller.rb | 17 +++++++++++++++++ app/models/status.rb | 2 +- app/views/admin/accounts/show.html.haml | 6 +++++- app/views/admin/reports/index.html.haml | 27 +++++++++++++++++++++++++++ app/views/admin/reports/show.html.haml | 2 ++ 5 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 app/controllers/admin/reports_controller.rb create mode 100644 app/views/admin/reports/index.html.haml create mode 100644 app/views/admin/reports/show.html.haml (limited to 'app') diff --git a/app/controllers/admin/reports_controller.rb b/app/controllers/admin/reports_controller.rb new file mode 100644 index 000000000..3eb5ab517 --- /dev/null +++ b/app/controllers/admin/reports_controller.rb @@ -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 diff --git a/app/models/status.rb b/app/models/status.rb index e440bbaca..46d92ea33 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -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 diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 206d6f81e..b528e161e 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -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 diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml new file mode 100644 index 000000000..8a5414cef --- /dev/null +++ b/app/views/admin/reports/index.html.haml @@ -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 diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml new file mode 100644 index 000000000..8aeb56200 --- /dev/null +++ b/app/views/admin/reports/show.html.haml @@ -0,0 +1,2 @@ +- content_for :page_title do + = "Report ##{@report.id}" -- cgit