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>2019-10-24 00:06:17 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-24 00:06:17 +0300
commit11faf8ae72dcdbaff31f97410a3a9319324438fd (patch)
tree2dc680f52ef8b2355c9097dfd1bbeb5ba899df3c /app/presenters/release_presenter.rb
parent7f0a4a64d0bc59b184ae3ee578adb6ebd3c48bf7 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/presenters/release_presenter.rb')
-rw-r--r--app/presenters/release_presenter.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/app/presenters/release_presenter.rb b/app/presenters/release_presenter.rb
new file mode 100644
index 00000000000..de9055db1e5
--- /dev/null
+++ b/app/presenters/release_presenter.rb
@@ -0,0 +1,47 @@
+# frozen_string_literal: true
+
+class ReleasePresenter < Gitlab::View::Presenter::Delegated
+ include ActionView::Helpers::UrlHelper
+
+ presents :release
+
+ delegate :project, :tag, to: :release
+
+ def commit_path
+ return unless release.commit && can_download_code?
+
+ project_commit_path(project, release.commit.id)
+ end
+
+ def tag_path
+ return unless can_download_code?
+
+ project_tag_path(project, release.tag)
+ end
+
+ def merge_requests_url
+ return unless release_mr_issue_urls_available?
+
+ project_merge_requests_url(project, params_for_issues_and_mrs)
+ end
+
+ def issues_url
+ return unless release_mr_issue_urls_available?
+
+ project_issues_url(project, params_for_issues_and_mrs)
+ end
+
+ private
+
+ def can_download_code?
+ can?(current_user, :download_code, project)
+ end
+
+ def params_for_issues_and_mrs
+ { scope: 'all', state: 'opened', release_tag: release.tag }
+ end
+
+ def release_mr_issue_urls_available?
+ ::Feature.enabled?(:release_mr_issue_urls, project)
+ end
+end