Merge branch 'remove_source_branch_button' of https://github.com/jacob-carlborg/gitlabhq into jacob-carlborg-remove_source_branch_button
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> Conflicts: app/assets/javascripts/merge_requests.js.coffee app/assets/stylesheets/sections/merge_requests.scss app/controllers/projects/merge_requests_controller.rb
This commit is contained in:
commit
1a17289bd3
4 changed files with 48 additions and 5 deletions
|
@ -58,6 +58,18 @@ class MergeRequest
|
||||||
$('.automerge_widget.can_be_merged').hide()
|
$('.automerge_widget.can_be_merged').hide()
|
||||||
$('.merge-in-progress').show()
|
$('.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) ->
|
activateTab: (action) ->
|
||||||
this.$('.nav-tabs li').removeClass 'active'
|
this.$('.nav-tabs li').removeClass 'active'
|
||||||
this.$('.tab-content').hide()
|
this.$('.tab-content').hide()
|
||||||
|
|
|
@ -211,9 +211,25 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
||||||
@merge_request_diff = @merge_request.merge_request_diff
|
@merge_request_diff = @merge_request.merge_request_diff
|
||||||
@allowed_to_merge = allowed_to_merge?
|
@allowed_to_merge = allowed_to_merge?
|
||||||
@show_merge_controls = @merge_request.open? && @commits.any? && @allowed_to_merge
|
@show_merge_controls = @merge_request.open? && @commits.any? && @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)
|
||||||
end
|
end
|
||||||
|
|
||||||
def allowed_to_merge?
|
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) &&
|
||||||
|
!@merge_request.disallow_source_branch_removal?
|
||||||
|
end
|
||||||
|
|
||||||
|
def allowed_to_push_code?(project)
|
||||||
action = if project.protected_branch?(@merge_request.target_branch)
|
action = if project.protected_branch?(@merge_request.target_branch)
|
||||||
:push_code_to_protected_branches
|
:push_code_to_protected_branches
|
||||||
else
|
else
|
||||||
|
@ -222,9 +238,4 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
||||||
|
|
||||||
can?(current_user, action, @project)
|
can?(current_user, action, @project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def invalid_mr
|
|
||||||
# Render special view for MR with removed source or target branch
|
|
||||||
render 'invalid'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
= render "projects/merge_requests/show/mr_accept"
|
= render "projects/merge_requests/show/mr_accept"
|
||||||
- else
|
- else
|
||||||
= render "projects/merge_requests/show/no_accept"
|
= render "projects/merge_requests/show/no_accept"
|
||||||
|
= render "projects/merge_requests/show/remove_source_branch"
|
||||||
- if @merge_request.source_project.gitlab_ci?
|
- if @merge_request.source_project.gitlab_ci?
|
||||||
= render "projects/merge_requests/show/mr_ci"
|
= render "projects/merge_requests/show/mr_ci"
|
||||||
= render "projects/merge_requests/show/commits"
|
= render "projects/merge_requests/show/commits"
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
- if @source_branch.blank?
|
||||||
|
.bs-callout.bs-callout-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 btn-primary 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
|
||||||
|
.bs-callout.bs-callout-info
|
||||||
|
%i.icon-refresh.icon-spin
|
||||||
|
|
||||||
|
Removing source branch '#{@merge_request.source_branch}'. Please wait. Page will be automatically reloaded.
|
Loading…
Reference in a new issue