From 643ab7b2c67b0faa88ba7abbb6c994412be74a53 Mon Sep 17 00:00:00 2001 From: Toks Date: Thu, 8 Oct 2015 01:14:48 -0400 Subject: [PATCH] ip search: add quick links & improve usability #2530 --- .../specific/moderator_dashboard.css.scss | 4 ++++ .../moderator/ip_addrs_controller.rb | 1 + app/logical/moderator/ip_addr_search.rb | 6 +++--- .../dashboards/_search_ip_addr.html.erb | 6 ++++-- app/views/moderator/ip_addrs/_ip_listing.erb | 18 ++++++++++++++++ .../moderator/ip_addrs/_user_listing.erb | 20 ++++++++++++++++++ app/views/moderator/ip_addrs/index.html.erb | 21 +++++-------------- app/views/moderator/ip_addrs/search.html.erb | 2 +- 8 files changed, 56 insertions(+), 22 deletions(-) create mode 100644 app/views/moderator/ip_addrs/_ip_listing.erb create mode 100644 app/views/moderator/ip_addrs/_user_listing.erb diff --git a/app/assets/stylesheets/specific/moderator_dashboard.css.scss b/app/assets/stylesheets/specific/moderator_dashboard.css.scss index 761485c94..9ec1dc419 100644 --- a/app/assets/stylesheets/specific/moderator_dashboard.css.scss +++ b/app/assets/stylesheets/specific/moderator_dashboard.css.scss @@ -16,6 +16,10 @@ div#c-moderator-dashboards { div#ip-addr-search { margin-bottom: 2em; + + .hint { + display: block; + } } div#activity-search { diff --git a/app/controllers/moderator/ip_addrs_controller.rb b/app/controllers/moderator/ip_addrs_controller.rb index 979873fde..82085a56e 100644 --- a/app/controllers/moderator/ip_addrs_controller.rb +++ b/app/controllers/moderator/ip_addrs_controller.rb @@ -4,6 +4,7 @@ module Moderator def index @search = IpAddrSearch.new(params[:search]) + @results = @search.execute end def search diff --git a/app/logical/moderator/ip_addr_search.rb b/app/logical/moderator/ip_addr_search.rb index eddc64f3f..70231f23f 100644 --- a/app/logical/moderator/ip_addr_search.rb +++ b/app/logical/moderator/ip_addr_search.rb @@ -9,11 +9,11 @@ module Moderator def execute if params[:user_id].present? - search_by_user_id(params[:user_id].split(/,/)) + search_by_user_id(params[:user_id].split(/,/).map(&:strip)) elsif params[:user_name].present? - search_by_user_name(params[:user_name].split(/,/)) + search_by_user_name(params[:user_name].split(/,/).map(&:strip)) elsif params[:ip_addr].present? - search_by_ip_addr(params[:ip_addr].split(/,/)) + search_by_ip_addr(params[:ip_addr].split(/,/).map(&:strip)) else [] end diff --git a/app/views/moderator/dashboards/_search_ip_addr.html.erb b/app/views/moderator/dashboards/_search_ip_addr.html.erb index ec2d27dd6..ca2b6e906 100644 --- a/app/views/moderator/dashboards/_search_ip_addr.html.erb +++ b/app/views/moderator/dashboards/_search_ip_addr.html.erb @@ -2,6 +2,7 @@
<%= text_field_tag "search[ip_addr]", params[:ip_addrs] %> + Separate with commas
<%= submit_tag "Search" %> @@ -9,8 +10,9 @@ <%= form_tag(moderator_ip_addrs_path, :method => :get, :class => "simple_form") do %>
- - <%= text_field_tag "search[user_id]", params[:user_ids] %> + + <%= text_field_tag "search[user_name]", params[:user_names] %> + Separate with commas
<%= submit_tag "Search" %> diff --git a/app/views/moderator/ip_addrs/_ip_listing.erb b/app/views/moderator/ip_addrs/_ip_listing.erb new file mode 100644 index 000000000..2529a33bd --- /dev/null +++ b/app/views/moderator/ip_addrs/_ip_listing.erb @@ -0,0 +1,18 @@ +<%= link_to "Perform another search for accounts associated with these IP addresses", moderator_ip_addrs_path(:search => {:ip_addr => @results.map{|k, count| k}.join(",")}) %> + + + + + + + + + + <% @results.each do |ip_address, count| %> + + + + + <% end %> + +
IP AddressNumber of Occurrences
<%= ip_address %><%= count %>
diff --git a/app/views/moderator/ip_addrs/_user_listing.erb b/app/views/moderator/ip_addrs/_user_listing.erb new file mode 100644 index 000000000..0586457fe --- /dev/null +++ b/app/views/moderator/ip_addrs/_user_listing.erb @@ -0,0 +1,20 @@ +<%= link_to "Perform another search for IP addresses associated with these accounts", moderator_ip_addrs_path(:search => {:user_id => @results.map{|k, count| k}.join(",")}) %> + + + + + + + + + + + <% @results.each do |user_id, count| %> + + + + + + <% end %> + +
UserUser IDNumber of Occurrences
<%= link_to_user User.find(user_id) %><%= user_id %><%= count %>
\ No newline at end of file diff --git a/app/views/moderator/ip_addrs/index.html.erb b/app/views/moderator/ip_addrs/index.html.erb index 3fa612049..bca873222 100644 --- a/app/views/moderator/ip_addrs/index.html.erb +++ b/app/views/moderator/ip_addrs/index.html.erb @@ -2,22 +2,11 @@

IP Addresses

- - - - - - - - - <% @search.execute.each do |k, count| %> - - - - - <% end %> - -
KeyCount
<%= k %><%= count %>
+ <% if params[:search][:user_id].present? || params[:search][:user_name].present? %> + <%= render "ip_listing" %> + <% else %> + <%= render "user_listing" %> + <% end %>
diff --git a/app/views/moderator/ip_addrs/search.html.erb b/app/views/moderator/ip_addrs/search.html.erb index 1cafc1cea..51b21a81a 100644 --- a/app/views/moderator/ip_addrs/search.html.erb +++ b/app/views/moderator/ip_addrs/search.html.erb @@ -2,7 +2,7 @@