Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-05-08 00:09:26 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-05-08 00:09:26 +0300
commit17c8111494f51e79744c782db023804f5e4a7410 (patch)
tree8aebe53b8aea72f9d4abac1bf9131203302a5b6e /lib/gitlab/project_search_results.rb
parent4b7575da97d88ef4c7b2ec599b0c3fc457b4f561 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/project_search_results.rb')
-rw-r--r--lib/gitlab/project_search_results.rb29
1 files changed, 14 insertions, 15 deletions
diff --git a/lib/gitlab/project_search_results.rb b/lib/gitlab/project_search_results.rb
index eb7ca80dd60..123dcf79065 100644
--- a/lib/gitlab/project_search_results.rb
+++ b/lib/gitlab/project_search_results.rb
@@ -2,30 +2,29 @@
module Gitlab
class ProjectSearchResults < SearchResults
- attr_reader :project, :repository_ref, :per_page
+ attr_reader :project, :repository_ref
- def initialize(current_user, project, query, repository_ref = nil, per_page: 20)
+ def initialize(current_user, project, query, repository_ref = nil)
@current_user = current_user
@project = project
@repository_ref = repository_ref.presence
@query = query
- @per_page = per_page
end
- def objects(scope, page = nil)
+ def objects(scope, page: nil, per_page: DEFAULT_PER_PAGE)
case scope
when 'notes'
notes.page(page).per(per_page)
when 'blobs'
- paginated_blobs(blobs(page), page)
+ paginated_blobs(blobs(limit: limit_up_to_page(page, per_page)), page, per_page)
when 'wiki_blobs'
- paginated_blobs(wiki_blobs, page)
+ paginated_blobs(wiki_blobs(limit: limit_up_to_page(page, per_page)), page, per_page)
when 'commits'
Kaminari.paginate_array(commits).page(page).per(per_page)
when 'users'
users.page(page).per(per_page)
else
- super(scope, page, false)
+ super(scope, page: page, per_page: per_page, without_count: false)
end
end
@@ -49,7 +48,7 @@ module Gitlab
end
def limited_blobs_count
- @limited_blobs_count ||= blobs.count
+ @limited_blobs_count ||= blobs(limit: count_limit).count
end
# rubocop: disable CodeReuse/ActiveRecord
@@ -69,7 +68,7 @@ module Gitlab
# rubocop: enable CodeReuse/ActiveRecord
def wiki_blobs_count
- @wiki_blobs_count ||= wiki_blobs.count
+ @wiki_blobs_count ||= wiki_blobs(limit: count_limit).count
end
def commits_count
@@ -87,7 +86,7 @@ module Gitlab
private
- def paginated_blobs(blobs, page)
+ def paginated_blobs(blobs, page, per_page)
results = Kaminari.paginate_array(blobs).page(page).per(per_page)
Gitlab::Search::FoundBlob.preload_blobs(results)
@@ -95,19 +94,19 @@ module Gitlab
results
end
- def limit_up_to_page(page)
+ def limit_up_to_page(page, per_page)
current_page = page&.to_i || 1
offset = per_page * (current_page - 1)
count_limit + offset
end
- def blobs(page = 1)
+ def blobs(limit: count_limit)
return [] unless Ability.allowed?(@current_user, :download_code, @project)
- @blobs ||= Gitlab::FileFinder.new(project, repository_project_ref).find(query, content_match_cutoff: limit_up_to_page(page))
+ @blobs ||= Gitlab::FileFinder.new(project, repository_project_ref).find(query, content_match_cutoff: limit)
end
- def wiki_blobs
+ def wiki_blobs(limit: count_limit)
return [] unless Ability.allowed?(@current_user, :read_wiki, @project)
@wiki_blobs ||= begin
@@ -115,7 +114,7 @@ module Gitlab
if project.wiki.empty?
[]
else
- Gitlab::WikiFileFinder.new(project, repository_wiki_ref).find(query)
+ Gitlab::WikiFileFinder.new(project, repository_wiki_ref).find(query, content_match_cutoff: limit)
end
else
[]