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 90 respond_to do |format|
91 91 if @merge_request.update_attributes(params[:merge_request].merge(:author_id_of_changes => current_user.id))
92 92 @merge_request.reload_code
  93 + @merge_request.mark_as_unchecked
93 94 format.html { redirect_to [@project, @merge_request], notice: 'Merge request was successfully updated.' }
94 95 format.json { head :ok }
95 96 else
... ... @@ -101,8 +102,7 @@ class MergeRequestsController < ApplicationController
101 102  
102 103 def automerge
103 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 106 end
107 107  
108 108 def destroy
... ...
app/models/merge_request.rb
... ... @@ -64,6 +64,10 @@ class MergeRequest < ActiveRecord::Base
64 64 state == UNCHECKED
65 65 end
66 66  
  67 + def mark_as_unchecked
  68 + self.update_attributes(:state => UNCHECKED)
  69 + end
  70 +
67 71 def can_be_merged?
68 72 state == CAN_BE_MERGED
69 73 end
... ... @@ -170,7 +174,7 @@ class MergeRequest < ActiveRecord::Base
170 174 )
171 175 end
172 176  
173   - def automerge!
  177 + def automerge!(current_user)
174 178 if GitlabMerge.new(self).merge
175 179 self.merge!(current_user.id)
176 180 true
... ...
app/models/project/hooks_trait.rb
... ... @@ -19,7 +19,7 @@ module Project::HooksTrait
19 19  
20 20 # Update code for merge requests
21 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 24 # Close merge requests
25 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 @@
  1 +:plain
  2 + location.reload();
... ...
app/views/merge_requests/show.html.haml
... ... @@ -54,12 +54,11 @@
54 54  
55 55 - if @merge_request.open? && @commits.any?
56 56 - if @merge_request.can_be_merged?
57   - .alert-message.info
  57 + .ui-box.padded
58 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 63 - else
65 64 .alert-message
... ... @@ -88,6 +87,10 @@
88 87 :javascript
89 88 $(function(){
90 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 96 = render "notes/per_line_form"
... ...