From 55a2c6de2ba9e65f14bd2df7d7e078feb6034d44 Mon Sep 17 00:00:00 2001 From: evazion Date: Wed, 30 Oct 2019 23:24:37 -0500 Subject: [PATCH] user feedbacks: reorganize index page. * Move search form to index page instead of a separate page. * Merge creator + timestamp into one column. * Add category column. * Fix N+1 query issue. --- app/controllers/user_feedbacks_controller.rb | 2 +- .../user_feedbacks/_secondary_links.html.erb | 1 - app/views/user_feedbacks/index.html.erb | 33 ++++++++++++++----- app/views/user_feedbacks/search.html.erb | 15 --------- config/routes.rb | 6 +--- 5 files changed, 27 insertions(+), 30 deletions(-) delete mode 100644 app/views/user_feedbacks/search.html.erb diff --git a/app/controllers/user_feedbacks_controller.rb b/app/controllers/user_feedbacks_controller.rb index a9154d41f..9eede89c0 100644 --- a/app/controllers/user_feedbacks_controller.rb +++ b/app/controllers/user_feedbacks_controller.rb @@ -20,7 +20,7 @@ class UserFeedbacksController < ApplicationController end def index - @user_feedbacks = UserFeedback.visible.paginated_search(params, count_pages: true) + @user_feedbacks = UserFeedback.visible.includes(:user, :creator).paginated_search(params, count_pages: true) respond_with(@user_feedbacks) end diff --git a/app/views/user_feedbacks/_secondary_links.html.erb b/app/views/user_feedbacks/_secondary_links.html.erb index d97e8bd8d..17c32ea87 100644 --- a/app/views/user_feedbacks/_secondary_links.html.erb +++ b/app/views/user_feedbacks/_secondary_links.html.erb @@ -9,5 +9,4 @@ <% end %> <% end %> <%= subnav_link_to "Listing", user_feedbacks_path %> - <%= subnav_link_to "Search", search_user_feedbacks_path %> <% end %> diff --git a/app/views/user_feedbacks/index.html.erb b/app/views/user_feedbacks/index.html.erb index 17c4a8d13..c39e58633 100644 --- a/app/views/user_feedbacks/index.html.erb +++ b/app/views/user_feedbacks/index.html.erb @@ -2,28 +2,45 @@

User Feedback

- + <%= search_form_for(user_feedbacks_path) do |f| %> + <%= f.input :user_name, input_html: { value: params.dig(:search, :user_name), "data-autocomplete": "user" } %> + <%= f.input :creator_name, input_html: { value: params.dig(:search, :creator_name), "data-autocomplete": "user" } %> + <%= f.input :body_matches, label: "Message", input_html: { value: params.dig(:search, :body_matches) } %> + <%= f.input :category, collection: %w[positive negative neutral], include_blank: true, selected: params.dig(:search, :category) %> + <%= f.submit "Search" %> + <% end %> + +
- - - - + + + + <% @user_feedbacks.each do |feedback| %> - - - + + +
UserCreatorWhenMessageUserMessageCategoryCreator