Merge branch 'pull/4990'
This commit is contained in:
commit
0cd18eb02f
5 changed files with 72 additions and 0 deletions
|
@ -816,6 +816,14 @@ tr.turn {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Rules for the issues page */
|
||||||
|
|
||||||
|
.issues.issues-index {
|
||||||
|
td.reporter_users {
|
||||||
|
max-width: 5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Rules for the account confirmation page */
|
/* Rules for the account confirmation page */
|
||||||
|
|
||||||
.accounts-terms-show {
|
.accounts-terms-show {
|
||||||
|
|
|
@ -44,6 +44,15 @@ class IssuesController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
@issues, @newer_issues_id, @older_issues_id = get_page_items(@issues, :limit => @params[:limit])
|
@issues, @newer_issues_id, @older_issues_id = get_page_items(@issues, :limit => @params[:limit])
|
||||||
|
|
||||||
|
@unique_reporters = @issues.each_with_object({}) do |issue, reporters|
|
||||||
|
user_ids = issue.reports.order(:created_at => :desc).map(&:user_id).uniq
|
||||||
|
reporters[issue.id] = {
|
||||||
|
:count => user_ids.size,
|
||||||
|
:users => User.in_order_of(:id, user_ids.first(3))
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
render :partial => "page" if turbo_frame_request_id == "pagination"
|
render :partial => "page" if turbo_frame_request_id == "pagination"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
<th><%= t ".reports" %></th>
|
<th><%= t ".reports" %></th>
|
||||||
<th><%= t ".reported_item" %></th>
|
<th><%= t ".reported_item" %></th>
|
||||||
<th><%= t ".reported_user" %></th>
|
<th><%= t ".reported_user" %></th>
|
||||||
|
<th class="reporter_users"><%= t ".reporter_users" %></th>
|
||||||
<th><%= t ".last_updated" %></th>
|
<th><%= t ".last_updated" %></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
@ -23,6 +24,14 @@
|
||||||
<td class="text-nowrap"><%= link_to t(".reports_count", :count => issue.reports_count), issue %></td>
|
<td class="text-nowrap"><%= link_to t(".reports_count", :count => issue.reports_count), issue %></td>
|
||||||
<td><%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %></td>
|
<td><%= link_to reportable_title(issue.reportable), reportable_url(issue.reportable) %></td>
|
||||||
<td><%= link_to issue.reported_user.display_name, issue.reported_user if issue.reported_user %></td>
|
<td><%= link_to issue.reported_user.display_name, issue.reported_user if issue.reported_user %></td>
|
||||||
|
<td class="reporter_users text-truncate">
|
||||||
|
<% @unique_reporters[issue.id][:users].each do |reporter| %>
|
||||||
|
<%= link_to reporter.display_name, reporter, :class => "d-block text-truncate", :title => reporter.display_name %>
|
||||||
|
<% end %>
|
||||||
|
<% if @unique_reporters[issue.id][:count] > 3 %>
|
||||||
|
<p class="m-0"><%= t ".more_reporters", :count => @unique_reporters[issue.id][:count] - 3 %></p>
|
||||||
|
<% end %>
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<% if issue.user_updated %>
|
<% if issue.user_updated %>
|
||||||
<%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, issue.user_updated),
|
<%= t ".last_updated_time_ago_user_html", :user => link_to(issue.user_updated.display_name, issue.user_updated),
|
||||||
|
|
|
@ -1512,9 +1512,11 @@ en:
|
||||||
reports: Reports
|
reports: Reports
|
||||||
last_updated: Last Updated
|
last_updated: Last Updated
|
||||||
last_updated_time_ago_user_html: "%{time_ago} by %{user}"
|
last_updated_time_ago_user_html: "%{time_ago} by %{user}"
|
||||||
|
reporter_users: Reporter Users
|
||||||
reports_count:
|
reports_count:
|
||||||
one: "%{count} Report"
|
one: "%{count} Report"
|
||||||
other: "%{count} Reports"
|
other: "%{count} Reports"
|
||||||
|
more_reporters: "and %{count} more"
|
||||||
reported_item: Reported Item
|
reported_item: Reported Item
|
||||||
states:
|
states:
|
||||||
ignored: Ignored
|
ignored: Ignored
|
||||||
|
|
|
@ -204,4 +204,48 @@ class IssuesTest < ApplicationSystemTestCase
|
||||||
assert_no_content(/extra_#{n}[^\d]/i)
|
assert_no_content(/extra_#{n}[^\d]/i)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_single_issue_reporters
|
||||||
|
sign_in_as(create(:moderator_user))
|
||||||
|
issue = create(:issue, :assigned_role => "moderator")
|
||||||
|
issue.reports << create(:report, :user => create(:user, :display_name => "Test Name"))
|
||||||
|
|
||||||
|
visit issues_path
|
||||||
|
assert_content issue.reported_user.display_name
|
||||||
|
assert_content issue.reports.first.user.display_name
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_multiple_issue_reporters
|
||||||
|
sign_in_as(create(:moderator_user))
|
||||||
|
issue = create(:issue, :assigned_role => "moderator")
|
||||||
|
|
||||||
|
create_list(:report, 5, :issue => issue)
|
||||||
|
|
||||||
|
visit issues_path
|
||||||
|
0.upto(1).each do |n|
|
||||||
|
assert_no_content issue.reports[n].user.display_name
|
||||||
|
end
|
||||||
|
2.upto(4).each do |n|
|
||||||
|
assert_content issue.reports[n].user.display_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_ordering_issue_reporters
|
||||||
|
sign_in_as(create(:moderator_user))
|
||||||
|
issue = create(:issue, :assigned_role => "moderator")
|
||||||
|
|
||||||
|
create_list(:report, 5, :issue => issue)
|
||||||
|
|
||||||
|
4.downto(0).each do |n|
|
||||||
|
issue.reports << create(:report, :user => issue.reports[n].user)
|
||||||
|
end
|
||||||
|
|
||||||
|
visit issues_path
|
||||||
|
0.upto(2).each do |n|
|
||||||
|
assert_content issue.reports[n].user.display_name
|
||||||
|
end
|
||||||
|
3.upto(4).each do |n|
|
||||||
|
assert_no_content issue.reports[n].user.display_name
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue