diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index 2bba7f55de12314166d1c4428de4d0d591cc2b3a..b71c449090e21f4f6d17fb2889aad85b7479784b 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -184,13 +184,13 @@ import initChangesDropdown from './init_changes_dropdown'; break; case 'dashboard:issues': case 'dashboard:merge_requests': - case 'groups:merge_requests': new ProjectSelect(); initLegacyFilters(); break; case 'groups:issues': + case 'groups:merge_requests': if (filteredSearchEnabled) { - const filteredSearchManager = new gl.FilteredSearchManager('issues'); + const filteredSearchManager = new gl.FilteredSearchManager(page === 'groups:issues' ? 'issues' : 'merge_requests'); filteredSearchManager.setup(); } new ProjectSelect(); diff --git a/app/views/groups/merge_requests.html.haml b/app/views/groups/merge_requests.html.haml index 569eef46e6ec3e1dd9a4ec6ae8bb449c9af11575..184df6f5406fe917bcede2447625ab8a2d990028 100644 --- a/app/views/groups/merge_requests.html.haml +++ b/app/views/groups/merge_requests.html.haml @@ -1,5 +1,9 @@ - page_title "Merge Requests" +- content_for :page_specific_javascripts do + = webpack_bundle_tag 'common_vue' + = webpack_bundle_tag 'filtered_search' + - if show_new_nav? && current_user - content_for :breadcrumbs_extra do = render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", type: :merge_requests @@ -13,7 +17,7 @@ .nav-controls{ class: ("visible-xs" if show_new_nav?) } = render 'shared/new_project_item_select', path: 'merge_requests/new', label: "New merge request", type: :merge_requests - = render 'shared/issuable/filter', type: :merge_requests + = render 'shared/issuable/search_bar', type: :merge_requests .row-content-block.second-block Only merge requests from diff --git a/changelogs/unreleased/group-mr-search-bar.yml b/changelogs/unreleased/group-mr-search-bar.yml new file mode 100644 index 0000000000000000000000000000000000000000..0b554a5d7c98923bf6d4f112a5c3b928c064820e --- /dev/null +++ b/changelogs/unreleased/group-mr-search-bar.yml @@ -0,0 +1,5 @@ +--- +title: Add filtered search to group merge requests dashboard +merge_request: 13688 +author: Hiroyuki Sato +type: changed diff --git a/spec/features/groups/merge_requests_spec.rb b/spec/features/groups/merge_requests_spec.rb index c2241feb9f7a4e01901165862440aa0f588bf16b..9ba9f5686f7f643a30129194d5e13152d2143e5a 100644 --- a/spec/features/groups/merge_requests_spec.rb +++ b/spec/features/groups/merge_requests_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' feature 'Group merge requests page' do + include FilteredSearchHelpers + let(:path) { merge_requests_group_path(group) } let(:issuable) { create(:merge_request, source_project: project, target_project: project, title: 'this is my created issuable') } @@ -33,4 +35,17 @@ feature 'Group merge requests page' do expect(page.find('#state-all span.badge').text).to eq("1") end end + + context 'group filtered search', :js do + let(:access_level) { ProjectFeature::ENABLED } + let(:user) { user_in_group } + let(:user2) { user_outside_group } + + it 'filters by assignee only group users' do + filtered_search.set('assignee:') + + expect(find('#js-dropdown-assignee .filter-dropdown')).to have_content(user.name) + expect(find('#js-dropdown-assignee .filter-dropdown')).not_to have_content(user2.name) + end + end end