summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-05-09 22:26:25 +0200
committerDouwe Maan <douwe@gitlab.com>2015-05-09 22:26:52 +0200
commit722e3935893e0493e5783f1a61034fe1481f8cb8 (patch)
tree9f051a8e42f0659adde57027b67efb3365de279d
parent8f75ab21d021fb5335ed9e084157cf2bc06caca1 (diff)
downloadgitlab-ce-722e3935893e0493e5783f1a61034fe1481f8cb8.tar.gz
Add Create Merge Request buttons to commits page and push event.
-rw-r--r--CHANGELOG1
-rw-r--r--app/helpers/compare_helper.rb24
-rw-r--r--app/views/events/event/_push.html.haml14
-rw-r--r--app/views/projects/commits/show.html.haml16
-rw-r--r--app/views/projects/compare/_form.html.haml7
5 files changed, 41 insertions, 21 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 3206c625cd0..2303282f0a7 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -49,6 +49,7 @@ v 7.11.0 (unreleased)
- Add footnotes support to Markdown (Guillaume Delbergue)
- Add current_sign_in_at to UserFull REST api.
- Make Sidekiq MemoryKiller shutdown signal configurable
+ - Add "Create Merge Request" buttons to commits page and push event.
v 7.10.2
- Fix CI links on MR page
diff --git a/app/helpers/compare_helper.rb b/app/helpers/compare_helper.rb
index 01847c6b807..fe339d32155 100644
--- a/app/helpers/compare_helper.rb
+++ b/app/helpers/compare_helper.rb
@@ -1,21 +1,21 @@
module CompareHelper
- def compare_to_mr_button?
- @project.merge_requests_enabled &&
- params[:from].present? &&
- params[:to].present? &&
- @repository.branch_names.include?(params[:from]) &&
- @repository.branch_names.include?(params[:to]) &&
- params[:from] != params[:to] &&
+ def create_mr_button?(from = params[:from], to = params[:to], project = @project)
+ project.merge_requests_enabled &&
+ from.present? &&
+ to.present? &&
+ project.repository.branch_names.include?(from) &&
+ project.repository.branch_names.include?(to) &&
+ from != to &&
!@refs_are_same
end
- def compare_mr_path
+ def create_mr_path(from = params[:from], to = params[:to], project = @project)
new_namespace_project_merge_request_path(
- @project.namespace,
- @project,
+ project.namespace,
+ project,
merge_request: {
- source_branch: params[:to],
- target_branch: params[:from]
+ source_branch: to,
+ target_branch: from
}
)
end
diff --git a/app/views/events/event/_push.html.haml b/app/views/events/event/_push.html.haml
index 60d7978b13f..1da702be384 100644
--- a/app/views/events/event/_push.html.haml
+++ b/app/views/events/event/_push.html.haml
@@ -17,15 +17,27 @@
- few_commits.each do |commit|
= render "events/commit", commit: commit, project: project
+ - create_mr = current_user == event.author && event.new_ref? && create_mr_button?(event.project.default_branch, event.ref_name, event.project)
- if event.commits_count > 1
%li.commits-stat
- if event.commits_count > 2
%span ... and #{event.commits_count - 2} more commits.
+
- if event.md_ref?
- from = event.commit_from
- from_label = truncate_sha(from)
- else
- from = event.project.default_branch
- from_label = from
+
= link_to namespace_project_compare_path(event.project.namespace, event.project, from: from, to: event.commit_to) do
- %strong Compare &rarr; #{from_label}...#{truncate_sha(event.commit_to)}
+ Compare #{from_label}...#{truncate_sha(event.commit_to)}
+
+ - if create_mr
+ or
+ = link_to create_mr_path(event.project.default_branch, event.ref_name, event.project) do
+ create a merge request
+ - elsif create_mr
+ %li.commits-stat
+ = link_to create_mr_path(event.project.default_branch, event.ref_name, event.project) do
+ Create Merge Request
diff --git a/app/views/projects/commits/show.html.haml b/app/views/projects/commits/show.html.haml
index c8531b090a6..e2a8d3ffbb9 100644
--- a/app/views/projects/commits/show.html.haml
+++ b/app/views/projects/commits/show.html.haml
@@ -8,11 +8,17 @@
.tree-ref-holder
= render 'shared/ref_switcher', destination: 'commits'
-- if current_user && current_user.private_token
- .commits-feed-holder.hidden-xs.hidden-sm
- = link_to namespace_project_commits_path(@project.namespace, @project, @ref, {format: :atom, private_token: current_user.private_token}), title: "Feed", class: 'btn' do
- %i.fa.fa-rss
- Commits feed
+.commits-feed-holder.hidden-xs.hidden-sm
+ - if create_mr_button?(@repository.root_ref, @ref)
+ = link_to create_mr_path(@repository.root_ref, @ref), class: 'btn btn-success' do
+ = icon('plus')
+ Create Merge Request
+
+ - if current_user && current_user.private_token
+ = link_to namespace_project_commits_path(@project.namespace, @project, @ref, {format: :atom, private_token: current_user.private_token}), title: "Feed", class: 'prepend-left-10 btn' do
+ = icon("rss")
+ Commits Feed
+
%ul.breadcrumb.repo-breadcrumb
= commits_breadcrumbs
diff --git a/app/views/projects/compare/_form.html.haml b/app/views/projects/compare/_form.html.haml
index dfb1dded9ea..a0e904cfd8b 100644
--- a/app/views/projects/compare/_form.html.haml
+++ b/app/views/projects/compare/_form.html.haml
@@ -13,9 +13,10 @@
= text_field_tag :to, params[:to], class: "form-control"
&nbsp;
= button_tag "Compare", class: "btn btn-create commits-compare-btn"
- - if compare_to_mr_button?
- = link_to compare_mr_path, class: 'prepend-left-10 btn' do
- %strong Make a merge request
+ - if create_mr_button?
+ = link_to create_mr_path, class: 'prepend-left-10 btn' do
+ = icon("plus")
+ Create Merge Request
:javascript