summaryrefslogtreecommitdiff
path: root/app/finders/issuable_finder.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-22 18:06:00 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-22 18:06:00 +0000
commitea4762d464bb36f3e36e318db47086e41f493377 (patch)
treec2fb2b7d2eb2b775d9ab149dc3781975fcc4b7d5 /app/finders/issuable_finder.rb
parent68b6846fa6c7b630cc8dab7a8474dcc34e4d67d4 (diff)
downloadgitlab-ce-ea4762d464bb36f3e36e318db47086e41f493377.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders/issuable_finder.rb')
-rw-r--r--app/finders/issuable_finder.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb
index dfddd32d7df..e3ea81d5564 100644
--- a/app/finders/issuable_finder.rb
+++ b/app/finders/issuable_finder.rb
@@ -13,6 +13,7 @@
# group_id: integer
# project_id: integer
# milestone_title: string
+# release_tag: string
# author_id: integer
# author_username: string
# assignee_id: integer or 'None' or 'Any'
@@ -59,6 +60,7 @@ class IssuableFinder
author_username
label_name
milestone_title
+ release_tag
my_reaction_emoji
search
in
@@ -126,6 +128,7 @@ class IssuableFinder
items = by_non_archived(items)
items = by_iids(items)
items = by_milestone(items)
+ items = by_release(items)
items = by_label(items)
by_my_reaction_emoji(items)
end
@@ -364,6 +367,10 @@ class IssuableFinder
end
end
+ def releases?
+ params[:release_tag].present?
+ end
+
private
def force_cte?
@@ -570,6 +577,18 @@ class IssuableFinder
end
# rubocop: enable CodeReuse/ActiveRecord
+ def by_release(items)
+ return items unless releases?
+
+ if filter_by_no_release?
+ items.without_release
+ elsif filter_by_any_release?
+ items.any_release
+ else
+ items.with_release(params[:release_tag], params[:project_id])
+ end
+ end
+
def filter_by_no_milestone?
# Accepts `No Milestone` for compatibility
params[:milestone_title].to_s.downcase == FILTER_NONE || params[:milestone_title] == Milestone::None.title
@@ -588,6 +607,14 @@ class IssuableFinder
params[:milestone_title] == Milestone::Started.name
end
+ def filter_by_no_release?
+ params[:release_tag].to_s.downcase == FILTER_NONE
+ end
+
+ def filter_by_any_release?
+ params[:release_tag].to_s.downcase == FILTER_ANY
+ end
+
def by_label(items)
return items unless labels?