Commit 3824f9b372fe9451d101eec478440d129fb2d0b2

Authored by randx
1 parent 411d84f3

Unverify MR on every push. Ajax for MR accept. better UI

app/controllers/merge_requests_controller.rb
@@ -90,6 +90,7 @@ class MergeRequestsController < ApplicationController @@ -90,6 +90,7 @@ class MergeRequestsController < ApplicationController
90 respond_to do |format| 90 respond_to do |format|
91 if @merge_request.update_attributes(params[:merge_request].merge(:author_id_of_changes => current_user.id)) 91 if @merge_request.update_attributes(params[:merge_request].merge(:author_id_of_changes => current_user.id))
92 @merge_request.reload_code 92 @merge_request.reload_code
  93 + @merge_request.mark_as_unchecked
93 format.html { redirect_to [@project, @merge_request], notice: 'Merge request was successfully updated.' } 94 format.html { redirect_to [@project, @merge_request], notice: 'Merge request was successfully updated.' }
94 format.json { head :ok } 95 format.json { head :ok }
95 else 96 else
@@ -101,8 +102,7 @@ class MergeRequestsController < ApplicationController @@ -101,8 +102,7 @@ class MergeRequestsController < ApplicationController
101 102
102 def automerge 103 def automerge
103 render_404 unless @merge_request.open? && @merge_request.can_be_merged? 104 render_404 unless @merge_request.open? && @merge_request.can_be_merged?
104 - message = @merge_request.automerge! ? "Successfully merged" : "Can not be merged"  
105 - redirect_to [@merge_request.project, @merge_request], :alert => message 105 + @merge_request.automerge!(current_user)
106 end 106 end
107 107
108 def destroy 108 def destroy
app/models/merge_request.rb
@@ -64,6 +64,10 @@ class MergeRequest < ActiveRecord::Base @@ -64,6 +64,10 @@ class MergeRequest < ActiveRecord::Base
64 state == UNCHECKED 64 state == UNCHECKED
65 end 65 end
66 66
  67 + def mark_as_unchecked
  68 + self.update_attributes(:state => UNCHECKED)
  69 + end
  70 +
67 def can_be_merged? 71 def can_be_merged?
68 state == CAN_BE_MERGED 72 state == CAN_BE_MERGED
69 end 73 end
@@ -170,7 +174,7 @@ class MergeRequest < ActiveRecord::Base @@ -170,7 +174,7 @@ class MergeRequest < ActiveRecord::Base
170 ) 174 )
171 end 175 end
172 176
173 - def automerge! 177 + def automerge!(current_user)
174 if GitlabMerge.new(self).merge 178 if GitlabMerge.new(self).merge
175 self.merge!(current_user.id) 179 self.merge!(current_user.id)
176 true 180 true
app/models/project/hooks_trait.rb
@@ -19,7 +19,7 @@ module Project::HooksTrait @@ -19,7 +19,7 @@ module Project::HooksTrait
19 19
20 # Update code for merge requests 20 # Update code for merge requests
21 mrs = self.merge_requests.opened.find_all_by_branch(branch_name).all 21 mrs = self.merge_requests.opened.find_all_by_branch(branch_name).all
22 - mrs.each { |merge_request| merge_request.reload_code } 22 + mrs.each { |merge_request| merge_request.reload_code; merge_request.mark_as_unchecked }
23 23
24 # Close merge requests 24 # Close merge requests
25 mrs = self.merge_requests.opened.where(:target_branch => branch_name).all 25 mrs = self.merge_requests.opened.where(:target_branch => branch_name).all
app/views/merge_requests/automerge.js.haml 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +:plain
  2 + location.reload();
app/views/merge_requests/show.html.haml
@@ -54,12 +54,11 @@ @@ -54,12 +54,11 @@
54 54
55 - if @merge_request.open? && @commits.any? 55 - if @merge_request.open? && @commits.any?
56 - if @merge_request.can_be_merged? 56 - if @merge_request.can_be_merged?
57 - .alert-message.info 57 + .ui-box.padded
58 %p 58 %p
59 - You can accept this request automatically. If you still want to do it manually - #{link_to "click here", "#", :class => "how_to_merge_link cwhite", :title => "How To Merge"} for instructions  
60 - .alert-actions  
61 - = link_to "Accept Merge Request", automerge_project_merge_request_path(@project, @merge_request), :class => "btn small info"  
62 -   59 + You can accept this request automatically. If you still want to do it manually - #{link_to "click here", "#", :class => "how_to_merge_link vlink", :title => "How To Merge"} for instructions
  60 + = link_to "Accept Merge Request", automerge_project_merge_request_path(@project, @merge_request), :class => "btn small info accept_merge_request", :remote => true
  61 +  
63 62
64 - else 63 - else
65 .alert-message 64 .alert-message
@@ -88,6 +87,10 @@ @@ -88,6 +87,10 @@
88 :javascript 87 :javascript
89 $(function(){ 88 $(function(){
90 MergeRequest.init(); 89 MergeRequest.init();
  90 +
  91 + $(".accept_merge_request").live("ajax:beforeSend", function() {
  92 + $(this).replaceWith('#{image_tag "ajax_loader.gif"}');
  93 + })
91 }) 94 })
92 95
93 = render "notes/per_line_form" 96 = render "notes/per_line_form"