From b6ed783fb4fc8ea443ae83c77df495e3d43f78b6 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Fri, 25 Oct 2024 15:07:12 -0600 Subject: [PATCH 1/4] Show `!=` NOT filter for source branch in the Vue MR List --- .../merge_requests/list/components/merge_requests_list_app.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue b/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue index 29e179ef2fac75..1398a389020271 100644 --- a/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue +++ b/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue @@ -353,7 +353,7 @@ export default { title: TOKEN_TITLE_SOURCE_BRANCH, icon: 'branch', token: BranchToken, - operators: OPERATORS_IS, + operators: OPERATORS_IS_NOT, fullPath: this.fullPath, isProject: true, fetchBranches: this.fetchSourceBranches, -- GitLab From 4b6b040f8f77310a10438beb5e8cdfb41834b5bb Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Wed, 30 Oct 2024 13:17:38 -0600 Subject: [PATCH 2/4] Remove filter operators entirely This defaults to both is/is not, but also fixes the UI text issue where "!=" is shown as "is not one of". --- .../merge_requests/list/components/merge_requests_list_app.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue b/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue index 1398a389020271..685c36ba9598a5 100644 --- a/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue +++ b/app/assets/javascripts/merge_requests/list/components/merge_requests_list_app.vue @@ -353,7 +353,6 @@ export default { title: TOKEN_TITLE_SOURCE_BRANCH, icon: 'branch', token: BranchToken, - operators: OPERATORS_IS_NOT, fullPath: this.fullPath, isProject: true, fetchBranches: this.fetchSourceBranches, -- GitLab From 637bb4423e4cf751f6d6b2ccfa3326a0838417b4 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Wed, 30 Oct 2024 13:32:00 -0600 Subject: [PATCH 3/4] Update the URL with usable values ...instead of `undefined` --- app/assets/javascripts/issues/list/constants.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/assets/javascripts/issues/list/constants.js b/app/assets/javascripts/issues/list/constants.js index 8c7e5e92910ead..3e2c923f0ac7b6 100644 --- a/app/assets/javascripts/issues/list/constants.js +++ b/app/assets/javascripts/issues/list/constants.js @@ -316,6 +316,9 @@ export const filtersMap = { [OPERATOR_IS]: { [NORMAL_FILTER]: 'source_branches[]', }, + [OPERATOR_NOT]: { + [NORMAL_FILTER]: 'not[source_branches][]', + }, }, }, [TOKEN_TYPE_TARGET_BRANCH]: { -- GitLab From 88eeace1e8728f0b91ec6c5a5c6b078f58264aef Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Wed, 30 Oct 2024 14:04:24 -0600 Subject: [PATCH 4/4] Update NOT tests to include source branch --- .../merge_requests_list_app_spec.js | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/spec/frontend/merge_requests/list/components/merge_requests_list_app_spec.js b/spec/frontend/merge_requests/list/components/merge_requests_list_app_spec.js index 6c9beca7b330ef..1af59ad9a190cd 100644 --- a/spec/frontend/merge_requests/list/components/merge_requests_list_app_spec.js +++ b/spec/frontend/merge_requests/list/components/merge_requests_list_app_spec.js @@ -417,19 +417,31 @@ describe('Merge requests list app', () => { type: 'reviewer', value: { data: 'root', operator: OPERATOR_NOT }, }, + { + type: 'source-branch', + value: { data: ['branch_name'], operator: OPERATOR_NOT }, + }, ]); await nextTick(); expect(getQueryResponseMock).toHaveBeenCalledWith( expect.objectContaining({ - not: { assigneeUsernames: ['root'], reviewerUsername: 'root' }, + not: { + assigneeUsernames: ['root'], + reviewerUsername: 'root', + sourceBranches: ['branch_name'], + }, }), ); expect(getCountsQueryResponseMock).toHaveBeenCalledWith( expect.objectContaining({ - not: { assigneeUsernames: ['root'], reviewerUsername: 'root' }, + not: { + assigneeUsernames: ['root'], + reviewerUsername: 'root', + sourceBranches: ['branch_name'], + }, }), ); }); @@ -446,6 +458,10 @@ describe('Merge requests list app', () => { type: 'reviewer', value: { data: 'root', operator: OPERATOR_NOT }, }, + { + type: 'source-branch', + value: { data: ['branch_name'], operator: OPERATOR_NOT }, + }, ]); await nextTick(); @@ -454,6 +470,7 @@ describe('Merge requests list app', () => { query: expect.objectContaining({ 'not[assignee_username][]': ['root'], 'not[reviewer_username]': 'root', + 'not[source_branches][]': ['branch_name'], }), }); }); -- GitLab