Skip to content

Commit a3af859

Browse files
committed
added sorting options for suggested edits
1 parent cc70881 commit a3af859

3 files changed

Lines changed: 74 additions & 50 deletions

File tree

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
.js-suggested-edit-reject-dialog.is-hidden {
2-
display: none;
3-
}
2+
display: none;
3+
}
4+
5+
.suggested-edits-list-header {
6+
display: flex;
7+
justify-content: space-between;
8+
}

app/controllers/suggested_edit_controller.rb

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,21 @@ class SuggestedEditController < ApplicationController
22
before_action :set_suggested_edit, only: [:show, :approve, :reject]
33

44
def category_index
5+
@show_decided = params[:show_decided].present? && params[:show_decided] == '1'
6+
7+
sort_orders = { asc: :asc, desc: :desc }
8+
sort_types = { age: :created_at, decided: :decided_at }
9+
10+
@default_sort_order = :desc
11+
@default_sort_type = @show_decided ? :decided : :age
12+
@sort_order = sort_orders[params[:order]&.to_sym] || sort_orders[@default_sort_order]
13+
@sort_type = sort_types[params[:sort]&.to_sym] || sort_types[@default_sort_type]
14+
515
@category = params[:category].present? ? Category.find(params[:category]) : nil
6-
@edits = if params[:show_decided].present? && params[:show_decided] == '1'
7-
SuggestedEdit.where(post: Post.undeleted.in(@category), active: false).newest_first
8-
else
9-
SuggestedEdit.where(post: Post.undeleted.in(@category), active: true).oldest_first
10-
end
16+
17+
@edits = SuggestedEdit.where(post: Post.undeleted.in(@category),
18+
active: !@show_decided)
19+
.order(@sort_type => @sort_order)
1120
end
1221

1322
def show

app/views/suggested_edit/category_index.html.erb

Lines changed: 53 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,55 +4,64 @@
44
<% categories = Category.unscoped.where(community: @community).order(sequence: :asc, id: :asc) %>
55
<% current_cat = current_category %>
66

7-
<div class="button-list is-gutterless">
8-
<%= link_to 'Pending', query_url(show_decided: 0),
9-
class: "button is-muted is-outlined #{params[:show_decided] != '1' ? 'is-active' : ''}" %>
10-
<%= link_to 'Decided', query_url(show_decided: 1),
11-
class: "button is-muted is-outlined #{params[:show_decided] == '1' ? 'is-active' : ''}" %>
7+
<div class="suggested-edits-list-header">
8+
<div class="button-list is-gutterless">
9+
<%= link_to 'Pending', query_url(show_decided: 0),
10+
class: "button is-muted is-outlined #{'is-active' unless @show_decided}" %>
11+
<%= link_to 'Decided', query_url(show_decided: 1),
12+
class: "button is-muted is-outlined #{'is-active' if @show_decided}" %>
13+
</div>
14+
15+
<%= render 'shared/sorting', default_order: @default_sort_order,
16+
default_type: @default_sort_type,
17+
types: %w[age decided] %>
1218
</div>
1319

14-
<% if params[:show_decided] != '1' && !current_user&.privilege?('edit_posts') %>
20+
<% unless @show_decided || current_user&.privilege?('edit_posts') %>
1521
<div class="notice is-info has-color-teal-800">
1622
<i class="fas fa-info-circle"></i> You can't approve or reject suggested edits (except on your own posts)
1723
because you haven't yet earned the <%= link_to 'Edit Posts', ability_path('edit_posts') %> ability.
1824
</div>
1925
<% end %>
2026

21-
<% if params[:show_decided] != '1' %>
22-
<h3>All categories</h3>
23-
<table>
24-
<tr>
25-
<th>category</th>
26-
<th>pending edits</th>
27-
</tr>
28-
<% categories.each do |cat| %>
29-
<% next if (cat.min_view_trust_level || -1) > (current_user&.trust_level || 0) %>
30-
<% sug_edits = SuggestedEdit.where(post: Post.undeleted.in(cat), active: true).count %>
31-
<tr>
32-
<td>
33-
<% if cat == current_cat %>
34-
<%= cat.name %>
35-
<% else %>
36-
<%= link_to suggested_edits_queue_url(cat) do %>
37-
<%= cat.name %>
38-
<% end %>
39-
<% end %>
40-
</td>
41-
<td>
42-
<% if cat == current_cat %>
43-
<%= sug_edits %>
44-
<% else %>
45-
<%= link_to suggested_edits_queue_url(cat) do %>
46-
<%= sug_edits %>
47-
<% end %>
27+
<% unless @show_decided %>
28+
<details class="has-margin-top-2">
29+
<summary>
30+
Categories
31+
</summary>
32+
<table>
33+
<tr>
34+
<th>category</th>
35+
<th>pending edits</th>
36+
</tr>
37+
<% categories.each do |cat| %>
38+
<% next if (cat.min_view_trust_level || -1) > (current_user&.trust_level || 0) %>
39+
<% sug_edits = SuggestedEdit.where(post: Post.undeleted.in(cat), active: true).count %>
40+
<tr>
41+
<td>
42+
<% if cat == current_cat %>
43+
<%= cat.name %>
44+
<% else %>
45+
<%= link_to suggested_edits_queue_url(cat) do %>
46+
<%= cat.name %>
47+
<% end %>
48+
<% end %>
49+
</td>
50+
<td>
51+
<% if cat == current_cat %>
52+
<%= sug_edits %>
53+
<% else %>
54+
<%= link_to suggested_edits_queue_url(cat) do %>
55+
<%= sug_edits %>
56+
<% end %>
57+
<% end %>
58+
</td>
59+
</tr>
4860
<% end %>
49-
</td>
50-
</tr>
51-
<% end %>
52-
</table>
61+
</table>
62+
</details>
5363
<% end %>
5464

55-
5665
<% if @edits.any? %>
5766
<div class="widget">
5867
<% @edits.each do |edit| %>
@@ -67,14 +76,15 @@
6776
><%= edit.active ? 'Pending' : (edit.approved? ? 'Approved' : 'Rejected' ) %></strong> suggested edit
6877
by <%= user_link edit.user %>,
6978
<span title="<%= edit.created_at.iso8601 %>"><%= time_ago_in_words(edit.created_at) %> ago</span>
70-
<% unless edit.active %>
71-
<br/>Decided by <%= user_link edit.decided_by %>,
72-
<span title="<%= edit.decided_at.iso8601 %>"><%= time_ago_in_words(edit.decided_at) %> ago</span>
73-
<% end %>
79+
<% unless edit.active %>
80+
<br/>
81+
Decided by <%= user_link edit.decided_by %>,
82+
<span title="<%= edit.decided_at.iso8601 %>"><%= time_ago_in_words(edit.decided_at) %> ago</span>
83+
<% end %>
7484
</div>
7585
</div>
7686
<% end %>
7787
</div>
7888
<% else %>
79-
<p>There are no suggested edits in this category.</p>
89+
<p>There are no suggested edits in this category.</p>
8090
<% end %>

0 commit comments

Comments
 (0)