From fcdc61f11109594af67886fcbf16a57b516921ad Mon Sep 17 00:00:00 2001 From: BrokenEagle Date: Sat, 13 Jan 2018 19:51:15 -0800 Subject: [PATCH] Add search interface for mod actions --- app/models/mod_action.rb | 8 ++++++++ app/views/mod_actions/_search.html.erb | 5 +++++ app/views/mod_actions/index.html.erb | 3 +++ 3 files changed, 16 insertions(+) create mode 100644 app/views/mod_actions/_search.html.erb diff --git a/app/models/mod_action.rb b/app/models/mod_action.rb index 57c58a828..b76d896d8 100644 --- a/app/models/mod_action.rb +++ b/app/models/mod_action.rb @@ -54,6 +54,14 @@ class ModAction < ApplicationRecord q = q.where("creator_id = ?", params[:creator_id].to_i) end + if params[:creator_name].present? + q = q.where("creator_id = (select _.id from users _ where lower(_.name) = ?)", params[:creator_name].mb_chars.downcase) + end + + if params[:category].present? + q = q.attribute_matches(:category, params[:category]) + end + q end diff --git a/app/views/mod_actions/_search.html.erb b/app/views/mod_actions/_search.html.erb new file mode 100644 index 000000000..035041fc3 --- /dev/null +++ b/app/views/mod_actions/_search.html.erb @@ -0,0 +1,5 @@ +<%= simple_form_for(:search, method: :get, url: mod_actions_path, defaults: { required: false }, html: { class: "inline-form" }) do |f| %> + <%= f.input :creator_name, label: "Creator", input_html: { value: params[:search][:creator_name] } %> + <%= f.input :category, label: "Category", collection: ModAction.categories.map {|k,v| [k.capitalize.tr("_"," "), v]}, include_blank: true,selected: params[:search][:category] %> + <%= f.submit "Search" %> +<% end %> diff --git a/app/views/mod_actions/index.html.erb b/app/views/mod_actions/index.html.erb index 32f30d5ef..6dc39dd1f 100644 --- a/app/views/mod_actions/index.html.erb +++ b/app/views/mod_actions/index.html.erb @@ -1,6 +1,9 @@

Mod Actions

+ + <%= render "search" %> +