summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClement Ho <clemmakesapps@gmail.com>2018-12-07 18:35:48 +0000
committerClement Ho <clemmakesapps@gmail.com>2018-12-07 18:35:48 +0000
commit767beb31e45c4576eec9030a37af832574209829 (patch)
treee6c3e69263d96eeccb2b74a61eb13bfe92cb22cf
parent88c0984d077e2a85d684d71d036d27278cd81182 (diff)
downloadgitlab-ce-revert-69aaa30d.tar.gz
Revert "Merge branch '22548-reopen-error-message' into 'master'"revert-69aaa30d
This reverts merge request !22326
-rw-r--r--app/assets/javascripts/notes/components/comment_form.vue16
-rw-r--r--app/controllers/projects/merge_requests_controller.rb12
-rw-r--r--app/models/merge_request.rb23
-rw-r--r--changelogs/unreleased/22548-reopen-error-message.yml6
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb14
5 files changed, 16 insertions, 55 deletions
diff --git a/app/assets/javascripts/notes/components/comment_form.vue b/app/assets/javascripts/notes/components/comment_form.vue
index ce56beb1e6b..841fcec96e8 100644
--- a/app/assets/javascripts/notes/components/comment_form.vue
+++ b/app/assets/javascripts/notes/components/comment_form.vue
@@ -247,19 +247,15 @@ Please check your network connection and try again.`;
} else {
this.reopenIssue()
.then(() => this.enableButton())
- .catch(({ data }) => {
+ .catch(() => {
this.enableButton();
this.toggleStateButtonLoading(false);
- let errorMessage = sprintf(
- __('Something went wrong while reopening the %{issuable}. Please try again later'),
- { issuable: this.noteableDisplayName },
+ Flash(
+ sprintf(
+ __('Something went wrong while reopening the %{issuable}. Please try again later'),
+ { issuable: this.noteableDisplayName },
+ ),
);
-
- if (data) {
- errorMessage = Object.values(data).join('\n');
- }
-
- Flash(errorMessage);
});
}
},
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index da9316d5f22..d521db79f85 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -122,21 +122,17 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
respond_to do |format|
format.html do
- if @merge_request.errors.present?
+ if @merge_request.valid?
+ redirect_to([@merge_request.target_project.namespace.becomes(Namespace), @merge_request.target_project, @merge_request])
+ else
define_edit_vars
render :edit
- else
- redirect_to project_merge_request_path(@merge_request.target_project, @merge_request)
end
end
format.json do
- if merge_request.errors.present?
- render json: @merge_request.errors, status: :bad_request
- else
- render json: serializer.represent(@merge_request, serializer: 'basic')
- end
+ render json: serializer.represent(@merge_request, serializer: 'basic')
end
end
rescue ActiveRecord::StaleObjectError
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 861211ffc0a..d0811a715bc 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -539,26 +539,15 @@ class MergeRequest < ActiveRecord::Base
def validate_branches
if target_project == source_project && target_branch == source_branch
- errors.add :branch_conflict, "You can't use same project/branch for source and target"
- return
+ errors.add :branch_conflict, "You can not use same project/branch for source and target"
end
if opened?
- similar_mrs = target_project
- .merge_requests
- .where(source_branch: source_branch, target_branch: target_branch)
- .where(source_project_id: source_project&.id)
- .opened
-
- similar_mrs = similar_mrs.where.not(id: id) if persisted?
-
- conflict = similar_mrs.first
-
- if conflict.present?
- errors.add(
- :validate_branches,
- "Another open merge request already exists for this source branch: #{conflict.to_reference}"
- )
+ similar_mrs = self.target_project.merge_requests.where(source_branch: source_branch, target_branch: target_branch, source_project_id: source_project.try(:id)).opened
+ similar_mrs = similar_mrs.where('id not in (?)', self.id) if self.id
+ if similar_mrs.any?
+ errors.add :validate_branches,
+ "Cannot Create: This merge request already exists: #{similar_mrs.pluck(:title)}"
end
end
end
diff --git a/changelogs/unreleased/22548-reopen-error-message.yml b/changelogs/unreleased/22548-reopen-error-message.yml
deleted file mode 100644
index 79c20eccb12..00000000000
--- a/changelogs/unreleased/22548-reopen-error-message.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Show error message when attempting to reopen an MR and there is an open MR
- for the same branch
-merge_request: 16447
-author: Akos Gyimesi
-type: fixed
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 7f15da859e5..e62523c65c9 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -290,20 +290,6 @@ describe Projects::MergeRequestsController do
it_behaves_like 'update invalid issuable', MergeRequest
end
-
- context 'two merge requests with the same source branch' do
- it 'does not allow a closed merge request to be reopened if another one is open' do
- merge_request.close!
- create(:merge_request, source_project: merge_request.source_project, source_branch: merge_request.source_branch)
-
- update_merge_request(state_event: 'reopen')
-
- errors = assigns[:merge_request].errors
-
- expect(errors[:validate_branches]).to include(/Another open merge request already exists for this source branch/)
- expect(merge_request.reload).to be_closed
- end
- end
end
describe 'POST merge' do