Commit 584ff6f8 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Render rebase button and ff merge button

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent e5f75999
...@@ -498,4 +498,12 @@ class MergeRequest < ActiveRecord::Base ...@@ -498,4 +498,12 @@ class MergeRequest < ActiveRecord::Base
unlock_mr if locked? unlock_mr if locked?
end end
end end
def source_sha_parent
source_project.repository.commit(source_sha).parents.first.sha
end
def ff_merge_possible?
target_sha == source_sha_parent
end
end end
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
= render 'projects/merge_requests/widget/open/not_allowed' = render 'projects/merge_requests/widget/open/not_allowed'
- elsif @merge_request.requires_approve? && !@merge_request.approved? - elsif @merge_request.requires_approve? && !@merge_request.approved?
= render 'projects/merge_requests/widget/open/approve' = render 'projects/merge_requests/widget/open/approve'
- elsif @project.merge_requests_ff_only_enabled
= render 'projects/merge_requests/widget/open/ff_accept'
- elsif @merge_request.can_be_merged? - elsif @merge_request.can_be_merged?
= render 'projects/merge_requests/widget/open/accept' = render 'projects/merge_requests/widget/open/accept'
......
...@@ -9,11 +9,6 @@ ...@@ -9,11 +9,6 @@
= label_tag :should_remove_source_branch, class: "remove_source_checkbox" do = label_tag :should_remove_source_branch, class: "remove_source_checkbox" do
= check_box_tag :should_remove_source_branch = check_box_tag :should_remove_source_branch
Remove source branch Remove source branch
- if @merge_request.target_project.merge_requests_rebase_enabled && can_rebase?(@merge_request.target_project, @merge_request.target_branch)
.accept-control.remove_branch_holder.checkbox
= label_tag :should_rebase do
= check_box_tag :should_rebase, "1", @project.merge_requests_rebase_default
Rebase before merge
.accept-control .accept-control
= link_to "#", class: "modify-merge-commit-link js-toggle-button" do = link_to "#", class: "modify-merge-commit-link js-toggle-button" do
......
- if @merge_request.ff_merge_possible?
= form_for [:ff_merge, @project.namespace.becomes(Namespace), @project, @merge_request], remote: true, method: :post, html: { class: 'accept-mr-form js-requires-input' } do |f|
= hidden_field_tag :authenticity_token, form_authenticity_token
.accept-merge-holder.clearfix.js-toggle-container
.accept-action
= f.button class: "btn btn-create accept-mr" do
Accept Merge Request
.accept-control
Fast-forward merge without creating merge commit
- else
= form_for [:rebase, @project.namespace.becomes(Namespace), @project, @merge_request],
remote: true, method: :post, html: { class: 'accept-mr-form js-requires-input' } do |f|
= hidden_field_tag :authenticity_token, form_authenticity_token
.accept-merge-holder.clearfix.js-toggle-container
- if @merge_request.target_project.merge_requests_rebase_enabled && can_rebase?(@merge_request.target_project, @merge_request.target_branch)
.accept-action
= f.button class: "btn btn-reopen rebase-mr" do
Rebase from #{@merge_request.target_branch}
.accept-control
Fast-forward merge is not possible. Branch must be rebased first
:coffeescript
$('.accept-mr-form').on 'ajax:before', ->
btn = $('.accept-mr')
btn.disable()
btn.html("<i class='fa fa-spinner fa-spin'></i> Merge in progress")
$('.rebase-mr-form').on 'ajax:before', ->
btn = $('.rebase-mr')
btn.disable()
btn.html("<i class='fa fa-spinner fa-spin'></i> Rebase in progress. It could take some time")
...@@ -505,6 +505,8 @@ Gitlab::Application.routes.draw do ...@@ -505,6 +505,8 @@ Gitlab::Application.routes.draw do
get :ci_status get :ci_status
post :toggle_subscription post :toggle_subscription
post :approve post :approve
post :rebase
post :ff_merge
end end
collection do collection do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment