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-10-21 10:08:36 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-10-21 10:08:36 +0300
commit48aff82709769b098321c738f3444b9bdaa694c6 (patch)
treee00c7c43e2d9b603a5a6af576b1685e400410dee /app/helpers/search_helper.rb
parent879f5329ee916a948223f8f43d77fba4da6cd028 (diff)
Add latest changes from gitlab-org/gitlab@13-5-stable-eev13.5.0-rc42
Diffstat (limited to 'app/helpers/search_helper.rb')
-rw-r--r--app/helpers/search_helper.rb51
1 files changed, 39 insertions, 12 deletions
diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb
index d55ad878b92..3467f6e9a44 100644
--- a/app/helpers/search_helper.rb
+++ b/app/helpers/search_helper.rb
@@ -1,14 +1,13 @@
# frozen_string_literal: true
module SearchHelper
- SEARCH_PERMITTED_PARAMS = [:search, :scope, :project_id, :group_id, :repository_ref, :snippets, :state].freeze
+ SEARCH_PERMITTED_PARAMS = [:search, :scope, :project_id, :group_id, :repository_ref, :snippets, :sort, :state, :confidential].freeze
def search_autocomplete_opts(term)
return unless current_user
resources_results = [
- recent_merge_requests_autocomplete(term),
- recent_issues_autocomplete(term),
+ recent_items_autocomplete(term),
groups_autocomplete(term),
projects_autocomplete(term)
].flatten
@@ -27,6 +26,10 @@ module SearchHelper
end
end
+ def recent_items_autocomplete(term)
+ recent_merge_requests_autocomplete(term) + recent_issues_autocomplete(term)
+ end
+
def search_entries_info(collection, scope, term)
return if collection.to_a.empty?
@@ -86,13 +89,18 @@ module SearchHelper
}).html_safe
end
+ def repository_ref(project)
+ # Always #to_s the repository_ref param in case the value is also a number
+ params[:repository_ref].to_s.presence || project.default_branch
+ end
+
# Overridden in EE
def search_blob_title(project, path)
path
end
def search_service
- @search_service ||= ::SearchService.new(current_user, params)
+ @search_service ||= ::SearchService.new(current_user, params.merge(confidential: Gitlab::Utils.to_boolean(params[:confidential])))
end
private
@@ -123,8 +131,7 @@ module SearchHelper
{ category: "Help", label: _("Rake Tasks Help"), url: help_page_path("raketasks/README") },
{ category: "Help", label: _("SSH Keys Help"), url: help_page_path("ssh/README") },
{ category: "Help", label: _("System Hooks Help"), url: help_page_path("system_hooks/system_hooks") },
- { category: "Help", label: _("Webhooks Help"), url: help_page_path("user/project/integrations/webhooks") },
- { category: "Help", label: _("Workflow Help"), url: help_page_path("workflow/README") }
+ { category: "Help", label: _("Webhooks Help"), url: help_page_path("user/project/integrations/webhooks") }
]
end
@@ -181,10 +188,10 @@ module SearchHelper
end
end
- def recent_merge_requests_autocomplete(term, limit = 5)
+ def recent_merge_requests_autocomplete(term)
return [] unless current_user
- ::Gitlab::Search::RecentMergeRequests.new(user: current_user).search(term).limit(limit).map do |mr|
+ ::Gitlab::Search::RecentMergeRequests.new(user: current_user).search(term).map do |mr|
{
category: "Recent merge requests",
id: mr.id,
@@ -195,10 +202,10 @@ module SearchHelper
end
end
- def recent_issues_autocomplete(term, limit = 5)
+ def recent_issues_autocomplete(term)
return [] unless current_user
- ::Gitlab::Search::RecentIssues.new(user: current_user).search(term).limit(limit).map do |i|
+ ::Gitlab::Search::RecentIssues.new(user: current_user).search(term).map do |i|
{
category: "Recent issues",
id: i.id,
@@ -255,11 +262,15 @@ module SearchHelper
opts[:data]['labels-endpoint'] = project_labels_path(@project)
opts[:data]['milestones-endpoint'] = project_milestones_path(@project)
opts[:data]['releases-endpoint'] = project_releases_path(@project)
+ opts[:data]['environments-endpoint'] =
+ unfoldered_environment_names_project_path(@project)
elsif @group.present?
opts[:data]['group-id'] = @group.id
opts[:data]['labels-endpoint'] = group_labels_path(@group)
opts[:data]['milestones-endpoint'] = group_milestones_path(@group)
opts[:data]['releases-endpoint'] = group_releases_path(@group)
+ opts[:data]['environments-endpoint'] =
+ unfoldered_environment_names_group_path(@group)
else
opts[:data]['labels-endpoint'] = dashboard_labels_path
opts[:data]['milestones-endpoint'] = dashboard_milestones_path
@@ -294,9 +305,25 @@ module SearchHelper
sanitize(html, tags: %w(a p ol ul li pre code))
end
- def show_user_search_tab?
- return false if Feature.disabled?(:users_search, default_enabled: true)
+ def simple_search_highlight_and_truncate(text, phrase, options = {})
+ text = Truncato.truncate(
+ text,
+ count_tags: false,
+ count_tail: false,
+ max_length: options.delete(:length) { 200 }
+ )
+
+ highlight(text, phrase.split, options)
+ end
+
+ # _search_highlight is used in EE override
+ def highlight_and_truncate_issue(issue, search_term, _search_highlight)
+ return unless issue.description.present?
+ simple_search_highlight_and_truncate(issue.description, search_term, highlighter: '<span class="gl-text-black-normal gl-font-weight-bold">\1</span>')
+ end
+
+ def show_user_search_tab?
if @project
project_search_tabs?(:members)
else