diff options
author | Clement Ho <clemmakesapps@gmail.com> | 2018-12-07 18:35:48 +0000 |
---|---|---|
committer | Clement Ho <clemmakesapps@gmail.com> | 2018-12-07 18:35:48 +0000 |
commit | 767beb31e45c4576eec9030a37af832574209829 (patch) | |
tree | e6c3e69263d96eeccb2b74a61eb13bfe92cb22cf | |
parent | 88c0984d077e2a85d684d71d036d27278cd81182 (diff) | |
download | gitlab-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.vue | 16 | ||||
-rw-r--r-- | app/controllers/projects/merge_requests_controller.rb | 12 | ||||
-rw-r--r-- | app/models/merge_request.rb | 23 | ||||
-rw-r--r-- | changelogs/unreleased/22548-reopen-error-message.yml | 6 | ||||
-rw-r--r-- | spec/controllers/projects/merge_requests_controller_spec.rb | 14 |
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 |