diff --git a/app/logical/pagination_extension.rb b/app/logical/concerns/pagination_extension.rb similarity index 91% rename from app/logical/pagination_extension.rb rename to app/logical/concerns/pagination_extension.rb index 27963ac5b..730dcde6a 100644 --- a/app/logical/pagination_extension.rb +++ b/app/logical/concerns/pagination_extension.rb @@ -3,6 +3,13 @@ module PaginationExtension attr_accessor :current_page, :records_per_page, :paginator_count, :paginator_mode + def paginated_search(params, defaults: {}, count_pages: params[:search].present?) + search_params = params.fetch(:search, {}).permit! + search_params = defaults.merge(search_params).with_indifferent_access + + search(search_params).paginate(params[:page], limit: params[:limit], search_count: count_pages) + end + def paginate(page, limit: nil, count: nil, search_count: nil) @records_per_page = limit || Danbooru.config.posts_per_page @records_per_page = @records_per_page.to_i.clamp(1, 1000) diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 8f9f94579..b480a5b7e 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -4,21 +4,7 @@ class ApplicationRecord < ActiveRecord::Base include Mentionable extend HasBitFlags extend Searchable - - concerning :PaginationMethods do - class_methods do - def paginate(*args, **options) - extending(PaginationExtension).paginate(*args, **options) - end - - def paginated_search(params, defaults: {}, count_pages: params[:search].present?) - search_params = params.fetch(:search, {}).permit! - search_params = defaults.merge(search_params).with_indifferent_access - - search(search_params).paginate(params[:page], limit: params[:limit], search_count: count_pages) - end - end - end + extend PaginationExtension concerning :PrivilegeMethods do class_methods do