Commit 3824f9b372fe9451d101eec478440d129fb2d0b2
1 parent
411d84f3
Exists in
master
and in
4 other branches
Unverify MR on every push. Ajax for MR accept. better UI
Showing
5 changed files
with
18 additions
and
9 deletions
Show diff stats
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/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" | ... | ... |