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-08-20 21:42:06 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-08-20 21:42:06 +0300
commit6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch)
tree78be5963ec075d80116a932011d695dd33910b4e /lib/api/groups.rb
parent1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff)
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'lib/api/groups.rb')
-rw-r--r--lib/api/groups.rb22
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/api/groups.rb b/lib/api/groups.rb
index 9ac3ac818fc..813e41b4d39 100644
--- a/lib/api/groups.rb
+++ b/lib/api/groups.rb
@@ -76,7 +76,7 @@ module API
params: project_finder_params,
options: finder_options
).execute
- projects = reorder_projects(projects)
+ projects = reorder_projects_with_similarity_order_support(group, projects)
paginate(projects)
end
@@ -112,6 +112,24 @@ module API
accepted!
end
+
+ def reorder_projects_with_similarity_order_support(group, projects)
+ return handle_similarity_order(group, projects) if params[:order_by] == 'similarity'
+
+ reorder_projects(projects)
+ end
+
+ # rubocop: disable CodeReuse/ActiveRecord
+ def handle_similarity_order(group, projects)
+ if params[:search].present? && Feature.enabled?(:similarity_search, group, default_enabled: true)
+ projects.sorted_by_similarity_desc(params[:search])
+ else
+ order_options = { name: :asc }
+ order_options['id'] ||= params[:sort] || 'asc'
+ projects.reorder(order_options)
+ end
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
end
resource :groups do
@@ -222,7 +240,7 @@ module API
optional :visibility, type: String, values: Gitlab::VisibilityLevel.string_values,
desc: 'Limit by visibility'
optional :search, type: String, desc: 'Return list of authorized projects matching the search criteria'
- optional :order_by, type: String, values: %w[id name path created_at updated_at last_activity_at],
+ optional :order_by, type: String, values: %w[id name path created_at updated_at last_activity_at similarity],
default: 'created_at', desc: 'Return projects ordered by field'
optional :sort, type: String, values: %w[asc desc], default: 'desc',
desc: 'Return projects sorted in ascending and descending order'