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
					
				|  | @ -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 New Issue