diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 6b0525c2f..e91765323 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -22,9 +22,6 @@ class CommentsController < ApplicationController end end - def search - end - def new if params[:id] quoted_comment = Comment.find(params[:id]) diff --git a/app/models/comment.rb b/app/models/comment.rb index 666a46ebc..f2f3e84ea 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -35,13 +35,29 @@ class Comment < ApplicationRecord def search(params, current_user) q = search_attributes(params, [:id, :created_at, :updated_at, :is_deleted, :is_sticky, :do_not_bump_post, :body, :score, :post, :creator, :updater], current_user: current_user) + if params[:is_edited].to_s.truthy? + q = q.where("comments.updated_at - comments.created_at > ?", 5.minutes.iso8601) + elsif params[:is_edited].to_s.falsy? + q = q.where("comments.updated_at - comments.created_at <= ?", 5.minutes.iso8601) + end + case params[:order] + when "id_asc" + q = q.order("comments.id ASC") + when "created_at", "created_at_desc" + q = q.order("comments.created_at DESC, comments.id DESC") + when "created_at_asc" + q = q.order("comments.created_at ASC, comments.id ASC") when "post_id", "post_id_desc" q = q.order("comments.post_id DESC, comments.id DESC") when "score", "score_desc" q = q.order("comments.score DESC, comments.id DESC") + when "score_asc" + q = q.order("comments.score ASC, comments.id ASC") when "updated_at", "updated_at_desc" - q = q.order("comments.updated_at DESC") + q = q.order("comments.updated_at DESC, comments.id DESC") + when "updated_at_asc" + q = q.order("comments.updated_at ASC, comments.id ASC") else q = q.apply_default_order(params) end diff --git a/app/views/comments/_index_by_comment.html.erb b/app/views/comments/_index_by_comment.html.erb index 8e58bae78..fe4263818 100644 --- a/app/views/comments/_index_by_comment.html.erb +++ b/app/views/comments/_index_by_comment.html.erb @@ -1,5 +1,19 @@
+ <%= search_form_for(comments_path) do |f| %> + <%= hidden_field_tag "group_by", "comment", :id => "group_by_full" %> + <%= f.input :creator_name, label: "Commenter", input_html: { value: params[:search][:creator_name], "data-autocomplete": "user" } %> + <%= f.input :body_matches, label: "Text", input_html: { value: params[:search][:body_matches] } %> + <%= f.input :post_tags_match, label: "Tags", input_html: { value: params[:search][:post_tags_match], "data-autocomplete": "tag-query" } %> + <%= f.input :score, input_html: { value: params[:search][:score] } %> + <%= f.input :is_edited, label: "Edited?", collection: %w[Yes No], include_blank: true, selected: params[:search][:is_edited] %> + <%= f.input :is_deleted, label: "Deleted?", collection: %w[Yes No], include_blank: true, selected: params[:search][:is_deleted] %> + <%= f.input :is_sticky, label: "Stickied?", collection: %w[Yes No], include_blank: true, selected: params[:search][:is_sticky] %> + <%= f.input :do_not_bump_post, label: "Bumped?", collection: [["Yes", false], ["No", true]], include_blank: true, selected: params[:search][:do_not_bump_post] %> + <%= f.input :order, collection: [["Newest", "id_desc"], ["Oldest", "id_asc"], ["Updated", "updated_at_desc"], ["Score (highest)", "score_desc"], ["Score (lowest)", "score_asc"]], include_blank: true, selected: params[:search][:order] %> + <%= f.submit "Search" %> + <% end %> + <% dtext_data = DText.preprocess(@comments.map(&:body)) %> <% @comments.each do |comment| %> diff --git a/app/views/comments/_secondary_links.html.erb b/app/views/comments/_secondary_links.html.erb index 00ff842b0..b76fdc5a9 100644 --- a/app/views/comments/_secondary_links.html.erb +++ b/app/views/comments/_secondary_links.html.erb @@ -1,7 +1,7 @@ <% content_for(:secondary_links) do %> <%= quick_search_form_for(:body_matches, comments_path, "comments") %> <%= subnav_link_to "Listing", comments_path(:group_by => "post") %> - <%= subnav_link_to "Search", search_comments_path %> + <%= subnav_link_to "Search", comments_path(group_by: "comment") %> <% if policy(CommentVote).can_see_votes? %> <%= subnav_link_to "Votes", comment_votes_path %> <% end %> diff --git a/app/views/comments/search.html.erb b/app/views/comments/search.html.erb deleted file mode 100644 index 0be5c5315..000000000 --- a/app/views/comments/search.html.erb +++ /dev/null @@ -1,20 +0,0 @@ -
- -
- -<%= render "secondary_links" %> diff --git a/app/views/static/site_map.html.erb b/app/views/static/site_map.html.erb index 8eaeb37c1..6e091726e 100644 --- a/app/views/static/site_map.html.erb +++ b/app/views/static/site_map.html.erb @@ -83,7 +83,7 @@