diff options
Diffstat (limited to 'app/helpers/search_helper.rb')
-rw-r--r-- | app/helpers/search_helper.rb | 36 |
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) |