Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Dávila <rdavila84@gmail.com>2016-02-08 23:37:27 +0300
committerRobert Speicher <rspeicher@gmail.com>2016-02-19 21:14:52 +0300
commita28eef1d1a871c14142d01f1ef8c76660da34c21 (patch)
treedbf503b472f2ecb09ad0d7d0af69ea166604344d
parent38752d159d4f7c06d374666f95fd52864449d838 (diff)
Update copy and URLs used when reverting MRs.
-rw-r--r--app/controllers/projects/commit_controller.rb26
-rw-r--r--app/models/commit.rb6
-rw-r--r--app/services/commits/revert_service.rb2
3 files changed, 30 insertions, 4 deletions
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb
index 330285306ef..d87a6fffc9c 100644
--- a/app/controllers/projects/commit_controller.rb
+++ b/app/controllers/projects/commit_controller.rb
@@ -62,13 +62,32 @@ class Projects::CommitController < Projects::ApplicationController
def revert
return render_404 if @target_branch.blank?
- create_commit(Commits::RevertService, success_notice: "The commit has been successfully reverted.",
- success_path: namespace_project_commits_path(@project.namespace, @project, @target_branch),
- failure_path: namespace_project_commit_path(@project.namespace, @project, params[:id]))
+ create_commit(Commits::RevertService, success_notice: "The #{revert_type_title} has been successfully reverted.",
+ success_path: successful_revert_path, failure_path: failed_revert_path)
end
private
+ def revert_type_title
+ @commit.merged_merge_request ? 'merge request' : 'commit'
+ end
+
+ def successful_revert_path
+ return referenced_merge_request_url if @commit.merged_merge_request
+
+ namespace_project_commits_url(@project.namespace, @project, @target_branch)
+ end
+
+ def failed_revert_path
+ return referenced_merge_request_url if @commit.merged_merge_request
+
+ namespace_project_commit_url(@project.namespace, @project, params[:id])
+ end
+
+ def referenced_merge_request_url
+ namespace_project_merge_request_url(@project.namespace, @project, @commit.merged_merge_request)
+ end
+
def commit
@commit ||= @project.commit(params[:id])
end
@@ -99,6 +118,7 @@ class Projects::CommitController < Projects::ApplicationController
@mr_target_branch = @target_branch
@commit_params = {
commit: @commit,
+ revert_type_title: revert_type_title,
create_merge_request: params[:create_merge_request].present? || different_project?
}
end
diff --git a/app/models/commit.rb b/app/models/commit.rb
index 398041be3fd..25007c7f15a 100644
--- a/app/models/commit.rb
+++ b/app/models/commit.rb
@@ -227,6 +227,12 @@ class Commit
parents.size > 1
end
+ def merged_merge_request
+ return @merged_merge_request if defined?(@merged_merge_request)
+
+ @merged_merge_request = is_a_merge_commit? && MergeRequest.where(merge_commit_sha: id).first
+ end
+
private
def repo_changes
diff --git a/app/services/commits/revert_service.rb b/app/services/commits/revert_service.rb
index dd8a92a2d87..fa5262b47ef 100644
--- a/app/services/commits/revert_service.rb
+++ b/app/services/commits/revert_service.rb
@@ -14,7 +14,7 @@ module Commits
if commit
success
else
- error("Sorry, we cannot revert this commit automatically.
+ error("Sorry, we cannot revert this #{params[:revert_type_title]} automatically.
It may have already been reverted, or a more recent commit may
have updated some of its content.")
end