Skip to content

Commit 3866348

Browse files
authored
Merge pull request #1855 from codidact/0valt/assorted
Add error report filtering by type
2 parents 7677c97 + 55dd096 commit 3866348

8 files changed

Lines changed: 70 additions & 20 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
document.addEventListener('DOMContentLoaded', () => {
2+
document.querySelectorAll('.js-error-type-select').forEach((el) => {
3+
$(el).select2();
4+
});
5+
});
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
@import 'variables';
2+
3+
.error-reports-filters {
4+
5+
.form-group-horizontal .actions,
6+
.select2-container {
7+
height: 37px;
8+
margin: 4px 0px;
9+
}
10+
11+
.select2-container {
12+
.selection {
13+
.select2-selection {
14+
border-color: $muted-graphic;
15+
height: 100%;
16+
padding: 4px 0;
17+
}
18+
19+
.select2-selection__arrow {
20+
top: 50%;
21+
translate: 0 -50%;
22+
}
23+
}
24+
}
25+
26+
.form-group-horizontal {
27+
.actions {
28+
.button {
29+
margin: 0;
30+
}
31+
}
32+
}
33+
}

app/assets/stylesheets/utilities.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
flex-direction: column;
3939
flex-wrap: wrap;
4040

41+
&.items-end {
42+
align-items: end;
43+
}
44+
4145
&.space-between {
4246
justify-content: space-between;
4347
}

app/controllers/admin_controller.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,18 @@ class AdminController < ApplicationController
1111
def index; end
1212

1313
def error_reports
14-
base_scope = if current_user.is_global_admin
14+
base_scope = if current_user.global_admin?
1515
ErrorLog.all
1616
else
1717
ErrorLog.where(community: RequestContext.community)
1818
end
1919

20+
@error_types = base_scope.select(:klass).distinct.to_a.map(&:klass)
21+
22+
if params[:type].present?
23+
base_scope = base_scope.where(klass: params[:type])
24+
end
25+
2026
if params[:uuid].present?
2127
base_scope = base_scope.where(uuid: params[:uuid])
2228
end

app/helpers/users_helper.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ def user_preference(name, community: false)
8686
end
8787

8888
##
89-
# Is the specified user deleted, either globally or on the current community?
90-
# @param user [User]
89+
# Is a gven user deleted (globally or on the current community)?
90+
# @param user [User, nil] user to check
9191
# @return [Boolean] check result - true if the user is +nil+.
9292
def deleted_user?(user)
9393
return true if user.nil?
@@ -97,7 +97,7 @@ def deleted_user?(user)
9797

9898
##
9999
# Get a RTL-safe string of the specified user's username. Appends an RTL terminator to the username.
100-
# @param user [User]
100+
# @param user [User, nil] user to get RTL-safe username for
101101
# @return [String]
102102
def rtl_safe_username(user)
103103
deleted_user?(user) ? 'deleted user' : user&.rtl_safe_username

app/views/admin/_error_report.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
<% if report.version? %>
2929
<br/>
30-
<strong>Version:</strong>
30+
<strong><%= t('g.version').capitalize %>:</strong>
3131
<%= link_to report.version, query_url(version: report.version) %>
3232
<% end %>
3333
</p>

app/views/admin/error_reports.html.erb

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
11
<h1><%= t 'admin.tools.error_reports' %></h1>
2-
<p class="is-lead"><%= pluralize(@reports.count, t('g.error')) %> <%= t 'g.logged' %></p>
2+
<p class="is-lead"><%= pluralize(@reports.count, t('g.error')) %> <%= t('g.logged') %></p>
33

4-
<div class="flex-row">
4+
<div class="error-reports-filters flex-row items-end">
55
<%= form_tag admin_error_reports_path, method: :get, class: 'has-margin-bottom-4 primary' do %>
66
<div class="form-group-horizontal">
77
<div class="form-group">
8-
<%= label_tag :uuid, t('admin.error_search_uuid') %>
9-
<%= text_field_tag :uuid, params[:uuid], class: 'form-element', placeholder: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' %>
8+
<%= label_tag :type, 'Error type' %>
9+
<%= select_tag :type,
10+
options_for_select(@error_types.map { |et| [et, et] }, selected: params[:type]),
11+
include_blank: true, class: 'form-element js-error-type-select' %>
1012
</div>
11-
<div class="actions">
12-
<%= submit_tag t('g.search').capitalize, class: 'button is-filled' %>
13+
14+
<div class="form-group">
15+
<%= label_tag :uuid, 'Error UUID' %>
16+
<%= text_field_tag :uuid, params[:uuid],
17+
class: 'form-element',
18+
placeholder: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' %>
1319
</div>
14-
</div>
15-
<% end %>
1620

17-
<%= form_tag admin_error_reports_path, method: :get, class: 'has-margin-bottom-4 primary' do %>
18-
<div class="form-group-horizontal">
1921
<div class="form-group">
2022
<%= label_tag :version, t('admin.error_search_version') %>
2123
<%= text_field_tag :version, params[:version], class: 'form-element', placeholder: '(full SHA)' %>
2224
</div>
23-
<div class="actions">
24-
<div class="button-list">
25-
<button type="submit" class="button is-filled"><%= t('g.search').capitalize %></button>
26-
<%= link_to 'Current', query_url(version: 'current'), class: 'button is-outlined' %>
27-
</div>
25+
26+
<div class="actions gap-sm">
27+
<button type="submit" class="button is-filled is-medium"><%= t('g.search').capitalize %></button>
28+
<%= link_to 'Current', query_url(version: 'current'), class: 'button is-outlined is-medium' %>
2829
</div>
2930
</div>
3031
<% end %>

config/locales/strings/en.g.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ en:
2323
threshold: 'threshold'
2424
type: 'type'
2525
user: 'user'
26+
version: 'version'
2627

2728
platform:
2829
network_name: 'Codidact'

0 commit comments

Comments
 (0)