diff --git a/app/models/artist_commentary.rb b/app/models/artist_commentary.rb index 9008372ad..5433f25c0 100644 --- a/app/models/artist_commentary.rb +++ b/app/models/artist_commentary.rb @@ -29,7 +29,7 @@ class ArtistCommentary < ApplicationRecord def search(params) q = super - q = q.search_post_id_attribute(params) + q = q.search_attributes(params, :post, :original_title, :original_description, :translated_title, :translated_description) if params[:text_matches].present? q = q.text_matches(params[:text_matches]) diff --git a/app/models/artist_commentary_version.rb b/app/models/artist_commentary_version.rb index b3adc0fab..0f90027d9 100644 --- a/app/models/artist_commentary_version.rb +++ b/app/models/artist_commentary_version.rb @@ -4,12 +4,7 @@ class ArtistCommentaryVersion < ApplicationRecord def self.search(params) q = super - q = q.search_user_attribute(:updater, params) - - if params[:post_id] - q = q.where("post_id = ?", params[:post_id].to_i) - end - + q = q.search_attributes(params, :post, :updater, :original_title, :original_description, :translated_title, :translated_description) q.apply_default_order(params) end end diff --git a/app/models/artist_version.rb b/app/models/artist_version.rb index b3c59749a..03bde80fa 100644 --- a/app/models/artist_version.rb +++ b/app/models/artist_version.rb @@ -10,11 +10,7 @@ class ArtistVersion < ApplicationRecord def search(params) q = super - if params[:name].present? - q = q.where("name like ? escape E'\\\\'", params[:name].to_escaped_for_sql_like) - end - - q = q.search_attributes(params, :updater, :is_active, :is_banned, :artist_id) + q = q.search_attributes(params, :updater, :is_active, :is_banned, :artist_id, :name, :group_name) params[:order] ||= params.delete(:sort) if params[:order] == "name" diff --git a/app/models/ban.rb b/app/models/ban.rb index 771442847..ff4b5c710 100644 --- a/app/models/ban.rb +++ b/app/models/ban.rb @@ -28,7 +28,7 @@ class Ban < ApplicationRecord def self.search(params) q = super - q = q.search_attributes(params, :banner, :user) + q = q.search_attributes(params, :banner, :user, :expires_at, :reason) q = q.text_attribute_matches(:reason, params[:reason_matches]) q = q.expired if params[:expired].to_s.truthy? diff --git a/app/models/bulk_update_request.rb b/app/models/bulk_update_request.rb index cfb7f482c..c6ce15e45 100644 --- a/app/models/bulk_update_request.rb +++ b/app/models/bulk_update_request.rb @@ -30,7 +30,7 @@ class BulkUpdateRequest < ApplicationRecord def search(params = {}) q = super - q = q.search_attributes(params, :user, :approver, :forum_topic_id, :forum_post_id) + q = q.search_attributes(params, :user, :approver, :forum_topic_id, :forum_post_id, :title, :script) q = q.text_attribute_matches(:title, params[:title_matches]) q = q.text_attribute_matches(:script, params[:script_matches]) diff --git a/app/models/comment.rb b/app/models/comment.rb index ed77ca463..f24e2e5bc 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -34,7 +34,7 @@ class Comment < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :post, :creator, :is_deleted, :is_sticky, :do_not_bump_post) + q = q.search_attributes(params, :post, :creator, :updater, :is_deleted, :is_sticky, :do_not_bump_post, :body, :score) q = q.text_attribute_matches(:body, params[:body_matches], index_column: :body_index) case params[:order] diff --git a/app/models/comment_vote.rb b/app/models/comment_vote.rb index f4959583f..86982abfb 100644 --- a/app/models/comment_vote.rb +++ b/app/models/comment_vote.rb @@ -10,17 +10,6 @@ class CommentVote < ApplicationRecord validate :validate_comment_can_be_down_voted validates_inclusion_of :score, :in => [-1, 1], :message => "must be 1 or -1" - def self.search(params) - q = where("true") - return q if params.blank? - - if params[:comment_id] - q = q.where("comment_id = ?", params[:comment_id].to_i) - end - - q - end - def validate_user_can_vote if !user.can_comment_vote? errors.add :base, "You cannot vote on more than 10 comments per hour" diff --git a/app/models/dmail.rb b/app/models/dmail.rb index 1ce5efe6c..66d182765 100644 --- a/app/models/dmail.rb +++ b/app/models/dmail.rb @@ -141,7 +141,7 @@ class Dmail < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :to, :from, :is_spam, :is_read, :is_deleted) + q = q.search_attributes(params, :to, :from, :is_spam, :is_read, :is_deleted, :title, :body) q = q.text_attribute_matches(:title, params[:title_matches]) q = q.text_attribute_matches(:body, params[:message_matches], index_column: :message_index) diff --git a/app/models/favorite_group.rb b/app/models/favorite_group.rb index 50a10ba17..6746dfd85 100644 --- a/app/models/favorite_group.rb +++ b/app/models/favorite_group.rb @@ -47,7 +47,7 @@ class FavoriteGroup < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :is_public) + q = q.search_attributes(params, :name, :is_public, :post_count) if params[:creator_id].present? user = User.find(params[:creator_id]) diff --git a/app/models/forum_post.rb b/app/models/forum_post.rb index 1d7bb59cb..6aa3bbe4b 100644 --- a/app/models/forum_post.rb +++ b/app/models/forum_post.rb @@ -47,7 +47,7 @@ class ForumPost < ApplicationRecord def search(params) q = super q = q.permitted - q = q.search_attributes(params, :creator, :topic_id, :is_deleted) + q = q.search_attributes(params, :creator, :updater, :topic_id, :is_deleted, :body) q = q.text_attribute_matches(:body, params[:body_matches], index_column: :text_index) if params[:topic_title_matches].present? diff --git a/app/models/forum_topic.rb b/app/models/forum_topic.rb index c05ea6e32..f24d22dc4 100644 --- a/app/models/forum_topic.rb +++ b/app/models/forum_topic.rb @@ -66,7 +66,7 @@ class ForumTopic < ApplicationRecord def search(params) q = super q = q.permitted - q = q.search_attributes(params, :is_sticky, :is_locked, :is_deleted, :category_id, :title) + q = q.search_attributes(params, :creator, :updater, :is_sticky, :is_locked, :is_deleted, :category_id, :title, :response_count) q = q.text_attribute_matches(:title, params[:title_matches], index_column: :text_index) if params[:mod_only].present? diff --git a/app/models/ip_ban.rb b/app/models/ip_ban.rb index f3382c2af..0da1a8838 100644 --- a/app/models/ip_ban.rb +++ b/app/models/ip_ban.rb @@ -12,6 +12,7 @@ class IpBan < ApplicationRecord def self.search(params) q = super + q = q.search_attributes(params, :creator, :reason) if params[:ip_addr].present? q = q.where("ip_addr = ?", params[:ip_addr]) diff --git a/app/models/janitor_trial.rb b/app/models/janitor_trial.rb index 15ec98678..430f6240c 100644 --- a/app/models/janitor_trial.rb +++ b/app/models/janitor_trial.rb @@ -9,7 +9,7 @@ class JanitorTrial < ApplicationRecord def self.search(params) q = super.where(status: "active") - q = q.search_user_attribute(:user, params) + q = q.search_attributes(params, :user, :creator, :original_level) q.apply_default_order(params) end diff --git a/app/models/mod_action.rb b/app/models/mod_action.rb index a20a964ae..b312f7f0a 100644 --- a/app/models/mod_action.rb +++ b/app/models/mod_action.rb @@ -55,7 +55,7 @@ class ModAction < ApplicationRecord def self.search(params) q = super - q = q.search_attributes(params, :creator, :category) + q = q.search_attributes(params, :creator, :category, :description) q = q.text_attribute_matches(:description, params[:description_matches]) q.apply_default_order(params) diff --git a/app/models/note.rb b/app/models/note.rb index d5b60d0fc..25faf98cd 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -19,7 +19,7 @@ class Note < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :creator, :post, :is_active) + q = q.search_attributes(params, :creator, :post, :is_active, :x, :y, :width, :height, :body, :version) q = q.text_attribute_matches(:body, params[:body_matches], index_column: :body_index) q.apply_default_order(params) diff --git a/app/models/note_version.rb b/app/models/note_version.rb index c69dc9d21..231cb73f4 100644 --- a/app/models/note_version.rb +++ b/app/models/note_version.rb @@ -6,7 +6,7 @@ class NoteVersion < ApplicationRecord def self.search(params) q = super - q = q.search_attributes(params, :updater, :is_active, :post, :note_id) + q = q.search_attributes(params, :updater, :is_active, :post, :note_id, :x, :y, :width, :height, :body, :version) q = q.text_attribute_matches(:body, params[:body_matches]) q.apply_default_order(params) diff --git a/app/models/pool.rb b/app/models/pool.rb index 4df9b6354..ec7fd8734 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -57,7 +57,7 @@ class Pool < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :creator, :is_active, :is_deleted) + q = q.search_attributes(params, :creator, :is_active, :is_deleted, :name, :description) q = q.text_attribute_matches(:description, params[:description_matches]) if params[:name_matches].present? diff --git a/app/models/pool_version.rb b/app/models/pool_version.rb index 385fc3221..fb5decaea 100644 --- a/app/models/pool_version.rb +++ b/app/models/pool_version.rb @@ -11,13 +11,7 @@ class PoolVersion < ApplicationRecord def search(params) q = super - - q = q.search_user_attribute(:updater, params) - - if params[:pool_id].present? - q = q.where("pool_id = ?", params[:pool_id].to_i) - end - + q = q.search_attributes(params, :updater, :pool_id) q.apply_default_order(params) end end diff --git a/app/models/post_appeal.rb b/app/models/post_appeal.rb index 2bb7bc7c9..36298f44c 100644 --- a/app/models/post_appeal.rb +++ b/app/models/post_appeal.rb @@ -24,7 +24,7 @@ class PostAppeal < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :creator, :post) + q = q.search_attributes(params, :creator, :post, :reason) q = q.text_attribute_matches(:reason, params[:reason_matches]) q = q.resolved if params[:is_resolved].to_s.truthy? diff --git a/app/models/post_approval.rb b/app/models/post_approval.rb index e36ad3508..e5f5e6123 100644 --- a/app/models/post_approval.rb +++ b/app/models/post_approval.rb @@ -34,10 +34,7 @@ class PostApproval < ApplicationRecord def self.search(params) q = super - - q = q.search_user_attribute(:user, params) - q = q.search_post_id_attribute(params) - + q = q.search_attributes(params, :user, :post) q.apply_default_order(params) end end diff --git a/app/models/post_flag.rb b/app/models/post_flag.rb index f69f1fa9e..37b41a6e3 100644 --- a/app/models/post_flag.rb +++ b/app/models/post_flag.rb @@ -51,7 +51,7 @@ class PostFlag < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :post, :is_resolved) + q = q.search_attributes(params, :post, :is_resolved, :reason) q = q.text_attribute_matches(:reason, params[:reason_matches]) # XXX diff --git a/app/models/tag.rb b/app/models/tag.rb index 6885106ee..fa5986c20 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -879,7 +879,7 @@ class Tag < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :is_locked, :category) + q = q.search_attributes(params, :is_locked, :category, :post_count) if params[:fuzzy_name_matches].present? q = q.fuzzy_name_matches(params[:fuzzy_name_matches]) diff --git a/app/models/tag_relationship.rb b/app/models/tag_relationship.rb index 26a0f693e..ceb224407 100644 --- a/app/models/tag_relationship.rb +++ b/app/models/tag_relationship.rb @@ -109,6 +109,7 @@ class TagRelationship < ApplicationRecord def search(params) q = super + q = q.search_attributes(params, :creator, :approver, :forum_topic_id, :forum_post_id) if params[:name_matches].present? q = q.name_matches(params[:name_matches]) diff --git a/app/models/upload.rb b/app/models/upload.rb index 3376d8641..47edf607f 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -177,7 +177,7 @@ class Upload < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :uploader, :post, :source, :rating, :parent_id, :server) + q = q.search_attributes(params, :uploader, :post, :source, :rating, :parent_id, :server, :md5, :server, :file_ext, :file_size, :image_width, :image_height, :referer_url) if params[:source_matches].present? q = q.where("uploads.source LIKE ? ESCAPE E'\\\\'", params[:source_matches].to_escaped_for_sql_like) diff --git a/app/models/user_feedback.rb b/app/models/user_feedback.rb index d1d6a82f1..a15bcbd04 100644 --- a/app/models/user_feedback.rb +++ b/app/models/user_feedback.rb @@ -44,7 +44,7 @@ class UserFeedback < ApplicationRecord def search(params) q = super - q = q.search_attributes(params, :user, :creator, :category) + q = q.search_attributes(params, :user, :creator, :category, :body) q = q.text_attribute_matches(:body, params[:body_matches]) q.apply_default_order(params) diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 18eb881c2..7ab62abf5 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -53,13 +53,13 @@ class WikiPage < ApplicationRecord def search(params = {}) q = super + q = q.search_attributes(params, :creator, :updater, :is_locked, :is_deleted, :body) + q = q.text_attribute_matches(:body, params[:body_matches], index_column: :body_index, ts_config: "danbooru") + if params[:title].present? q = q.where("title LIKE ? ESCAPE E'\\\\'", params[:title].mb_chars.downcase.strip.tr(" ", "_").to_escaped_for_sql_like) end - q = q.search_attributes(params, :creator, :is_locked, :is_deleted) - q = q.text_attribute_matches(:body, params[:body_matches], index_column: :body_index, ts_config: "danbooru") - if params[:other_names_match].present? q = q.other_names_match(params[:other_names_match]) end