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
unlock_mr if locked?
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
......@@ -17,6 +17,8 @@
= render 'projects/merge_requests/widget/open/not_allowed'
- elsif @merge_request.requires_approve? && !@merge_request.approved?
= 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?
= render 'projects/merge_requests/widget/open/accept'
......
......@@ -9,11 +9,6 @@
= label_tag :should_remove_source_branch, class: "remove_source_checkbox" do
= check_box_tag :should_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
= 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
get :ci_status
post :toggle_subscription
post :approve
post :rebase
post :ff_merge
end
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