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>2022-07-05 03:09:38 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-05 03:09:38 +0300
commit2e74e7299b20e0c3d0c5c26e329ef26388abb9ca (patch)
tree66ec0d09fab0e944da690fa57ac960c1bf04a68d /app/finders
parent568e9be84cf7850a478c67829439d0eac0341618 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders')
-rw-r--r--app/finders/projects_finder.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/app/finders/projects_finder.rb b/app/finders/projects_finder.rb
index f6db150c5d8..6b8dcd61d29 100644
--- a/app/finders/projects_finder.rb
+++ b/app/finders/projects_finder.rb
@@ -16,6 +16,7 @@
# visibility_level: int
# tag: string[] - deprecated, use 'topic' instead
# topic: string[]
+# topic_id: int
# personal: boolean
# search: string
# search_namespaces: boolean
@@ -81,6 +82,7 @@ class ProjectsFinder < UnionFinder
collection = by_trending(collection)
collection = by_visibility_level(collection)
collection = by_topics(collection)
+ collection = by_topic_id(collection)
collection = by_search(collection)
collection = by_archived(collection)
collection = by_custom_attributes(collection)
@@ -186,12 +188,21 @@ class ProjectsFinder < UnionFinder
topics = params[:topic].instance_of?(String) ? params[:topic].split(',') : params[:topic]
topics.map(&:strip).uniq.reject(&:empty?).each do |topic|
- items = items.with_topic(topic)
+ items = items.with_topic_by_name(topic)
end
items
end
+ def by_topic_id(items)
+ return items unless params[:topic_id].present?
+
+ topic = Projects::Topic.find_by(id: params[:topic_id]) # rubocop: disable CodeReuse/ActiveRecord
+ return Project.none unless topic
+
+ items.with_topic(topic)
+ end
+
def by_search(items)
params[:search] ||= params[:name]