summaryrefslogtreecommitdiff
path: root/app/helpers/gitlab/merge_requests_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/gitlab/merge_requests_helper.rb')
-rw-r--r--app/helpers/gitlab/merge_requests_helper.rb76
1 files changed, 76 insertions, 0 deletions
diff --git a/app/helpers/gitlab/merge_requests_helper.rb b/app/helpers/gitlab/merge_requests_helper.rb
new file mode 100644
index 00000000000..361f6b2fdac
--- /dev/null
+++ b/app/helpers/gitlab/merge_requests_helper.rb
@@ -0,0 +1,76 @@
+module Gitlab
+ module MergeRequestsHelper
+ def new_mr_path_from_push_event(event)
+ target_project = event.project.forked_from_project || event.project
+ new_namespace_project_merge_request_path(
+ event.project.namespace,
+ event.project,
+ new_mr_from_push_event(event, target_project)
+ )
+ end
+
+ def new_mr_path_for_fork_from_push_event(event)
+ new_namespace_project_merge_request_path(
+ event.project.namespace,
+ event.project,
+ new_mr_from_push_event(event, event.project.forked_from_project)
+ )
+ end
+
+ def new_mr_from_push_event(event, target_project)
+ {
+ merge_request: {
+ source_project_id: event.project.id,
+ target_project_id: target_project.id,
+ source_branch: event.branch_name,
+ target_branch: target_project.repository.root_ref
+ }
+ }
+ end
+
+ def mr_css_classes(mr)
+ classes = "merge-request"
+ classes << " closed" if mr.closed?
+ classes << " merged" if mr.merged?
+ classes
+ end
+
+ def ci_build_details_path(merge_request)
+ merge_request.source_project.ci_service.build_page(merge_request.last_commit.sha, merge_request.source_branch)
+ end
+
+ def merge_path_description(merge_request, separator)
+ if merge_request.for_fork?
+ "Project:Branches: #{@merge_request.source_project_path}:#{@merge_request.source_branch} #{separator} #{@merge_request.target_project.path_with_namespace}:#{@merge_request.target_branch}"
+ else
+ "Branches: #{@merge_request.source_branch} #{separator} #{@merge_request.target_branch}"
+ end
+ end
+
+ def issues_sentence(issues)
+ issues.map { |i| "##{i.iid}" }.to_sentence
+ end
+
+ def mr_change_branches_path(merge_request)
+ new_namespace_project_merge_request_path(
+ @project.namespace, @project,
+ merge_request: {
+ source_project_id: @merge_request.source_project_id,
+ target_project_id: @merge_request.target_project_id,
+ source_branch: @merge_request.source_branch,
+ target_branch: nil
+ }
+ )
+ end
+
+ def source_branch_with_namespace(merge_request)
+ if merge_request.for_fork?
+ namespace = link_to(merge_request.source_project_namespace,
+ project_path(merge_request.source_project))
+ namespace + ":#{merge_request.source_branch}"
+ else
+ merge_request.source_branch
+ end
+ end
+ end
+end