Class: Gitlab::ProjectSearchResults
Constant Summary
SearchResults::COUNT_LIMIT, SearchResults::COUNT_LIMIT_MESSAGE, SearchResults::DEFAULT_PAGE, SearchResults::DEFAULT_PER_PAGE
Instance Attribute Summary collapse
#current_user, #default_project_filter, #filters, #limit_projects, #order_by, #query, #sort
Instance Method Summary
collapse
#aggregations, #count_limit, #counts, #error, #failed?, #formatted_limited_count, #highlight_map, #limited_issues_count, #limited_merge_requests_count, #limited_milestones_count, #limited_projects_count, #limited_users_count
Constructor Details
#initialize(current_user, query, project:, repository_ref: nil, order_by: nil, sort: nil, filters: {}) ⇒ ProjectSearchResults
Returns a new instance of ProjectSearchResults.
7
8
9
10
11
12
13
14
15
|
# File 'lib/gitlab/project_search_results.rb', line 7
def initialize(current_user, query, project:, repository_ref: nil, order_by: nil, sort: nil, filters: {})
@project = project
@repository_ref = repository_ref.presence
super(
current_user, query, [project], order_by: order_by, sort: sort, filters: filters, default_project_filter: true
)
end
|
Instance Attribute Details
#project ⇒ Object
Returns the value of attribute project.
5
6
7
|
# File 'lib/gitlab/project_search_results.rb', line 5
def project
@project
end
|
#repository_ref ⇒ Object
Returns the value of attribute repository_ref.
5
6
7
|
# File 'lib/gitlab/project_search_results.rb', line 5
def repository_ref
@repository_ref
end
|
Instance Method Details
#commits_count ⇒ Object
77
78
79
|
# File 'lib/gitlab/project_search_results.rb', line 77
def commits_count
@commits_count ||= commits(limit: count_limit).count
end
|
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/gitlab/project_search_results.rb', line 34
def formatted_count(scope)
case scope
when 'blobs'
formatted_limited_count(limited_blobs_count)
when 'notes'
formatted_limited_count(limited_notes_count)
when 'wiki_blobs'
wiki_blobs_count.to_s
when 'commits'
formatted_limited_count(commits_count)
else
super
end
end
|
#limited_blobs_count ⇒ Object
Also known as:
blobs_count
53
54
55
|
# File 'lib/gitlab/project_search_results.rb', line 53
def limited_blobs_count
@limited_blobs_count ||= blobs(limit: count_limit).count
end
|
#limited_notes_count ⇒ Object
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/gitlab/project_search_results.rb', line 59
def limited_notes_count
return @limited_notes_count if defined?(@limited_notes_count)
types = %w[issue merge_request commit snippet]
@limited_notes_count = 0
types.each do |type|
@limited_notes_count += notes_finder(type).limit(count_limit).count
break if @limited_notes_count >= count_limit
end
@limited_notes_count
end
|
#objects(scope, page: nil, per_page: DEFAULT_PER_PAGE, preload_method: nil) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/gitlab/project_search_results.rb', line 17
def objects(scope, page: nil, per_page: DEFAULT_PER_PAGE, preload_method: nil)
case scope
when 'notes'
notes.page(page).per(per_page)
when 'blobs'
paginated_blobs(blobs(limit: limit_up_to_page(page, per_page)), page, per_page)
when 'wiki_blobs'
paginated_wiki_blobs(wiki_blobs(limit: limit_up_to_page(page, per_page)), page, per_page)
when 'commits'
paginated_commits(page, per_page)
when 'users'
users.page(page).per(per_page)
else
super
end
end
|
#users ⇒ Object
49
50
51
|
# File 'lib/gitlab/project_search_results.rb', line 49
def users
super.id_in(@project.team.members)
end
|
#wiki_blobs_count ⇒ Object
73
74
75
|
# File 'lib/gitlab/project_search_results.rb', line 73
def wiki_blobs_count
@wiki_blobs_count ||= wiki_blobs(limit: count_limit).count
end
|