Commit f8114954 authored by Jacob Carlborg's avatar Jacob Carlborg

Add button for removing source branch for merged MR's.

parent 8fb9dccd
......@@ -57,6 +57,18 @@ class MergeRequest
$('.automerge_widget.can_be_merged').hide()
$('.merge-in-progress').show()
this.$('.remove_source_branch').on 'click', ->
$('.remove_source_branch_widget').hide()
$('.remove_source_branch_in_progress').show()
this.$(".remove_source_branch").on "ajax:success", (e, data, status, xhr) ->
location.reload()
this.$(".remove_source_branch").on "ajax:error", (e, data, status, xhr) =>
this.$('.remove_source_branch_widget').hide()
this.$('.remove_source_branch_in_progress').hide()
this.$('.remove_source_branch_widget.failed').show()
activateTab: (action) ->
this.$('.nav-tabs li').removeClass 'active'
this.$('.tab-content').hide()
......
......@@ -53,7 +53,7 @@
}
}
.merge-in-progress {
.merge-in-progress, .remove_source_branch_in_progress {
@extend .padded;
@extend .append-bottom-10;
}
......
......@@ -199,6 +199,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@commits = @merge_request.commits
@allowed_to_merge = allowed_to_merge?
@allowed_to_remove_source_branch = allowed_to_remove_source_branch?
@source_branch = @merge_request.source_project.repository.find_branch(@merge_request.source_branch).try(:name)
@show_merge_controls = @merge_request.opened? && @commits.any? && @allowed_to_merge
@target_type = :merge_request
......@@ -206,6 +208,19 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end
def allowed_to_merge?
allowed_to_push_code?(project)
end
def invalid_mr
# Render special view for MR with removed source or target branch
render 'invalid'
end
def allowed_to_remove_source_branch?
allowed_to_push_code?(@merge_request.source_project)
end
def allowed_to_push_code? (project)
action = if project.protected_branch?(@merge_request.target_branch)
:push_code_to_protected_branches
else
......@@ -214,9 +229,4 @@ class Projects::MergeRequestsController < Projects::ApplicationController
can?(current_user, action, @project)
end
def invalid_mr
# Render special view for MR with removed source or target branch
render 'invalid'
end
end
......@@ -7,6 +7,7 @@
= render "projects/merge_requests/show/mr_accept"
- else
= render "projects/merge_requests/show/no_accept"
= render "projects/merge_requests/show/remove_source_branch"
- if @merge_request.source_project.gitlab_ci?
= render "projects/merge_requests/show/mr_ci"
= render "projects/merge_requests/show/commits"
......
- if @source_branch.blank?
.alert.alert-info Source branch has been removed
- elsif @allowed_to_remove_source_branch && @merge_request.merged?
.remove_source_branch_widget
.alert.alert-info
= link_to project_branch_path(@merge_request.source_project, @source_branch), remote: true, method: :delete, class: "btn remove_source_branch" do
%i.icon-remove
Remove Source Branch
.remove_source_branch_widget.failed.hide
.alert.alert-error Failed to remove source branch '#{@merge_request.source_branch}'
.remove_source_branch_in_progress.hide
%span.cgray
%i.icon-refresh.icon-spin
&nbsp;
Removing source branch '#{@merge_request.source_branch}'. Please wait. Page will be automatically reloaded. &nbsp;
\ No newline at end of file
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