From d9ea925f4eb52d670fd38c174a2439bc4ad8806d Mon Sep 17 00:00:00 2001 From: r888888888 Date: Fri, 21 Apr 2017 13:50:44 -0700 Subject: [PATCH] add support for searching for dup-related flags --- app/assets/stylesheets/common/simple_form.scss | 3 ++- app/helpers/application_helper.rb | 1 + app/models/post_flag.rb | 10 ++++++++++ app/views/dtext/_form.html.erb | 7 ++++++- app/views/post_flags/_new.html.erb | 2 +- app/views/post_flags/_search.html.erb | 2 +- 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/common/simple_form.scss b/app/assets/stylesheets/common/simple_form.scss index 0efa07c42..d2926f181 100644 --- a/app/assets/stylesheets/common/simple_form.scss +++ b/app/assets/stylesheets/common/simple_form.scss @@ -17,7 +17,8 @@ form.simple_form { } span.hint { - margin-left: 1em; + display: block; + font-size: 70%; } textarea { diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 124c3bec2..21ec75472 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -144,6 +144,7 @@ module ApplicationHelper options[:value] ||= instance_variable_get("@#{object}").try(name) options[:preview_id] ||= "dtext-preview" options[:classes] ||= "" + options[:type] ||= "text" render "dtext/form", options end diff --git a/app/models/post_flag.rb b/app/models/post_flag.rb index 9b640cdcc..1c338a65d 100644 --- a/app/models/post_flag.rb +++ b/app/models/post_flag.rb @@ -33,6 +33,14 @@ class PostFlag < ActiveRecord::Base end end + def duplicate + where("to_tsvector('english', post_flags.reason) @@ to_tsquery('dup | duplicate | sample | smaller')") + end + + def not_duplicate + where("to_tsvector('english', post_flags.reason) @@ to_tsquery('!dup & !duplicate & !sample & !smaller')") + end + def post_tags_match(query) PostQueryBuilder.new(query).build(self.joins(:post)) end @@ -98,6 +106,8 @@ class PostFlag < ActiveRecord::Base q = q.where("reason LIKE ?", Reasons::REJECTED) when "deleted" q = q.where("reason = ? OR reason LIKE ?", Reasons::UNAPPROVED, Reasons::REJECTED) + when "duplicate" + q = q.duplicate end q diff --git a/app/views/dtext/_form.html.erb b/app/views/dtext/_form.html.erb index 02cc9bce9..c2f2fcc13 100644 --- a/app/views/dtext/_form.html.erb +++ b/app/views/dtext/_form.html.erb @@ -4,12 +4,17 @@ - input_name - preview_id - value +- type -->
- + <% if type == "text" %> + + <% else %> + + <% end %>
All text is formatted using <%= link_to "DText", wiki_pages_path(:title => "help:dtext"), :target => "_blank" %> diff --git a/app/views/post_flags/_new.html.erb b/app/views/post_flags/_new.html.erb index 36eb643e2..5ba550c30 100644 --- a/app/views/post_flags/_new.html.erb +++ b/app/views/post_flags/_new.html.erb @@ -4,6 +4,6 @@ <% @post_flag = post_flag %> <%= simple_form_for(@post_flag, format: :js, remote: true) do |f| %> <%= f.hidden_field :post_id %> - <%= dtext_field "post_flag", "reason", preview_id: "dtext-preview-for-post-flag" %> + <%= dtext_field "post_flag", "reason", preview_id: "dtext-preview-for-post-flag", type: "string" %> <%= dtext_preview_button "post_flag", "reason", preview_id: "dtext-preview-for-post-flag" %> <% end %> diff --git a/app/views/post_flags/_search.html.erb b/app/views/post_flags/_search.html.erb index f358ceb36..003466650 100644 --- a/app/views/post_flags/_search.html.erb +++ b/app/views/post_flags/_search.html.erb @@ -6,6 +6,6 @@ <%= f.input :creator_name, label: "Creator", input_html: { value: params[:search][:creator_name] } %> <% end %> <%= f.input :is_resolved, label: "Resolved?", collection: [["Yes", true], ["No", false]], include_blank: true, selected: params[:search][:is_resolved] %> - <%= f.input :category, label: "Category", collection: ["normal", "unapproved", "rejected", "deleted", "banned"], include_blank: true, selected: params[:search][:category] %> + <%= f.input :category, label: "Category", collection: ["normal", "unapproved", "rejected", "deleted", "banned", "duplicate"], include_blank: true, selected: params[:search][:category] %> <%= f.submit "Search" %> <% end %>