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:
Diffstat (limited to 'app/helpers/search_helper.rb')
-rw-r--r--app/helpers/search_helper.rb36
1 files changed, 25 insertions, 11 deletions
diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb
index ecbcaec27bc..dc53be330fe 100644
--- a/app/helpers/search_helper.rb
+++ b/app/helpers/search_helper.rb
@@ -14,28 +14,42 @@ module SearchHelper
:project_ids
].freeze
- def search_autocomplete_opts(term)
+ def search_autocomplete_opts(term, filter: nil)
return unless current_user
- resources_results = [
- recent_items_autocomplete(term),
+ results = case filter&.to_sym
+ when :search
+ resource_results(term)
+ when :generic
+ [
+ recent_items_autocomplete(term),
+ generic_results(term)
+ ]
+ else
+ [
+ recent_items_autocomplete(term),
+ resource_results(term),
+ generic_results(term)
+ ]
+ end
+
+ results.flatten { |item| item[:label] }
+ end
+
+ def resource_results(term)
+ [
groups_autocomplete(term),
projects_autocomplete(term),
issue_autocomplete(term)
].flatten
+ end
+ def generic_results(term)
search_pattern = Regexp.new(Regexp.escape(term), "i")
generic_results = project_autocomplete + default_autocomplete + help_autocomplete
generic_results.concat(default_autocomplete_admin) if current_user.admin?
- generic_results.select! { |result| result[:label] =~ search_pattern }
-
- [
- resources_results,
- generic_results
- ].flatten do |item|
- item[:label]
- end
+ generic_results.select { |result| result[:label] =~ search_pattern }
end
def recent_items_autocomplete(term)