diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 9d588c370aabeff7a577f6168efe87272882bb5f..525bd79aea7d4f3cca10a60a32a32fd724e1ffcd 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -191,6 +191,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController end end + def revert + redirect_to new_namespace_project_merge_request_url(@project.namespace, @project) + end + def branch_from #This is always source @source_project = @merge_request.nil? ? @project : @merge_request.source_project diff --git a/app/views/projects/merge_requests/show/_mr_title.html.haml b/app/views/projects/merge_requests/show/_mr_title.html.haml index 473fbff721b313a25ec20c934c354228733268c0..e6be1a5a19bd349c788c78fbb116263ac442a44b 100644 --- a/app/views/projects/merge_requests/show/_mr_title.html.haml +++ b/app/views/projects/merge_requests/show/_mr_title.html.haml @@ -17,4 +17,6 @@ %i.fa.fa-pencil-square-o Edit - if @merge_request.closed? - = link_to 'Reopen', merge_request_path(@merge_request, merge_request: {state_event: :reopen }), method: :put, class: 'btn btn-nr btn-grouped btn-reopen reopen-mr-link', title: 'Reopen merge request' + = link_to 'Reopen', merge_request_path(@merge_request, merge_request: {state_event: :reopen }), method: :put, class: 'btn btn-nr btn-grouped btn-reopen reopen-mr-link', title: "Reopen merge request" + - if @merge_request.merged? + = link_to 'Revert', revert_namespace_project_merge_request_path(@project.namespace, @project, @merge_request), method: :post, class: "btn btn-grouped btn-close", title: "Revert merge request" diff --git a/config/routes.rb b/config/routes.rb index c6541a8979cb42fa9f9d39a6b7439522d7ccefe8..3bd9610834f1c4676254f6cc43be7225bedd35fc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -590,6 +590,7 @@ Rails.application.routes.draw do post :cancel_merge_when_build_succeeds get :ci_status post :toggle_subscription + post :revert end collection do