Skip to content
代码片段 群组 项目
提交 4cee5884 编辑于 作者: Tomas Bulva's avatar Tomas Bulva
浏览文件

Added archived filter for commits scope

Changelog: added
EE: true
上级 2393d720
No related branches found
No related tags found
无相关合并请求
...@@ -14,6 +14,7 @@ import { ...@@ -14,6 +14,7 @@ import {
SCOPE_BLOB, SCOPE_BLOB,
SCOPE_PROJECTS, SCOPE_PROJECTS,
SCOPE_NOTES, SCOPE_NOTES,
SCOPE_COMMITS,
SEARCH_TYPE_ADVANCED, SEARCH_TYPE_ADVANCED,
} from '../constants'; } from '../constants';
import IssuesFilters from './issues_filters.vue'; import IssuesFilters from './issues_filters.vue';
...@@ -21,6 +22,7 @@ import MergeRequestsFilters from './merge_requests_filters.vue'; ...@@ -21,6 +22,7 @@ import MergeRequestsFilters from './merge_requests_filters.vue';
import BlobsFilters from './blobs_filters.vue'; import BlobsFilters from './blobs_filters.vue';
import ProjectsFilters from './projects_filters.vue'; import ProjectsFilters from './projects_filters.vue';
import NotesFilters from './notes_filters.vue'; import NotesFilters from './notes_filters.vue';
import CommitsFilters from './commits_filters.vue';
export default { export default {
name: 'GlobalSearchSidebar', name: 'GlobalSearchSidebar',
...@@ -35,6 +37,7 @@ export default { ...@@ -35,6 +37,7 @@ export default {
SidebarPortal, SidebarPortal,
DomElementListener, DomElementListener,
SmallScreenDrawerNavigation, SmallScreenDrawerNavigation,
CommitsFilters,
}, },
mixins: [glFeatureFlagsMixin()], mixins: [glFeatureFlagsMixin()],
computed: { computed: {
...@@ -51,7 +54,6 @@ export default { ...@@ -51,7 +54,6 @@ export default {
return this.currentScope === SCOPE_BLOB && this.searchType === SEARCH_TYPE_ADVANCED; return this.currentScope === SCOPE_BLOB && this.searchType === SEARCH_TYPE_ADVANCED;
}, },
showProjectsFilters() { showProjectsFilters() {
// for now the feature flag is here. Since we have only one filter in projects scope
return this.currentScope === SCOPE_PROJECTS; return this.currentScope === SCOPE_PROJECTS;
}, },
showNotesFilters() { showNotesFilters() {
...@@ -61,6 +63,14 @@ export default { ...@@ -61,6 +63,14 @@ export default {
this.glFeatures.searchNotesHideArchivedProjects this.glFeatures.searchNotesHideArchivedProjects
); );
}, },
showCommitsFilters() {
// for now, the feature flag is placed here. Since we have only one filter in commits scope
return (
this.currentScope === SCOPE_COMMITS &&
this.searchType === SEARCH_TYPE_ADVANCED &&
this.glFeatures.searchCommitsHideArchivedProjects
);
},
showScopeNavigation() { showScopeNavigation() {
// showScopeNavigation refers to whether the scope navigation should be shown // showScopeNavigation refers to whether the scope navigation should be shown
// while the legacy navigation is being used and there are no search results // while the legacy navigation is being used and there are no search results
...@@ -86,6 +96,7 @@ export default { ...@@ -86,6 +96,7 @@ export default {
<blobs-filters v-if="showBlobFilters" /> <blobs-filters v-if="showBlobFilters" />
<projects-filters v-if="showProjectsFilters" /> <projects-filters v-if="showProjectsFilters" />
<notes-filters v-if="showNotesFilters" /> <notes-filters v-if="showNotesFilters" />
<commits-filters v-if="showCommitsFilters" />
</sidebar-portal> </sidebar-portal>
</section> </section>
...@@ -100,6 +111,7 @@ export default { ...@@ -100,6 +111,7 @@ export default {
<blobs-filters v-if="showBlobFilters" /> <blobs-filters v-if="showBlobFilters" />
<projects-filters v-if="showProjectsFilters" /> <projects-filters v-if="showProjectsFilters" />
<notes-filters v-if="showNotesFilters" /> <notes-filters v-if="showNotesFilters" />
<commits-filters v-if="showCommitsFilters" />
</div> </div>
<small-screen-drawer-navigation class="gl-lg-display-none"> <small-screen-drawer-navigation class="gl-lg-display-none">
<scope-legacy-navigation /> <scope-legacy-navigation />
...@@ -108,6 +120,7 @@ export default { ...@@ -108,6 +120,7 @@ export default {
<blobs-filters v-if="showBlobFilters" /> <blobs-filters v-if="showBlobFilters" />
<projects-filters v-if="showProjectsFilters" /> <projects-filters v-if="showProjectsFilters" />
<notes-filters v-if="showNotesFilters" /> <notes-filters v-if="showNotesFilters" />
<commits-filters v-if="showCommitsFilters" />
</small-screen-drawer-navigation> </small-screen-drawer-navigation>
</section> </section>
</template> </template>
...@@ -11,6 +11,7 @@ const scopes = { ...@@ -11,6 +11,7 @@ const scopes = {
MERGE_REQUESTS: 'merge_requests', MERGE_REQUESTS: 'merge_requests',
NOTES: 'notes', NOTES: 'notes',
BLOBS: 'blobs', BLOBS: 'blobs',
COMMITS: 'commits',
}; };
const filterParam = 'include_archived'; const filterParam = 'include_archived';
......
<script>
import ArchivedFilter from './archived_filter/index.vue';
import FiltersTemplate from './filters_template.vue';
export default {
name: 'CommitsFilters',
components: {
ArchivedFilter,
FiltersTemplate,
},
};
</script>
<template>
<filters-template>
<archived-filter class="gl-mb-5" />
</filters-template>
</template>
...@@ -3,6 +3,7 @@ export const SCOPE_MERGE_REQUESTS = 'merge_requests'; ...@@ -3,6 +3,7 @@ export const SCOPE_MERGE_REQUESTS = 'merge_requests';
export const SCOPE_BLOB = 'blobs'; export const SCOPE_BLOB = 'blobs';
export const SCOPE_PROJECTS = 'projects'; export const SCOPE_PROJECTS = 'projects';
export const SCOPE_NOTES = 'notes'; export const SCOPE_NOTES = 'notes';
export const SCOPE_COMMITS = 'commits';
export const LABEL_DEFAULT_CLASSES = [ export const LABEL_DEFAULT_CLASSES = [
'gl-display-flex', 'gl-display-flex',
'gl-flex-direction-row', 'gl-flex-direction-row',
......
...@@ -58,6 +58,10 @@ def search_rate_limited_endpoints ...@@ -58,6 +58,10 @@ def search_rate_limited_endpoints
push_frontend_feature_flag(:search_blobs_hide_archived_projects, current_user) push_frontend_feature_flag(:search_blobs_hide_archived_projects, current_user)
end end
before_action only: :show do
push_frontend_feature_flag(:search_commits_hide_archived_projects, current_user)
end
after_action :run_index_integrity_worker, only: :show, if: :no_results_for_group_or_project_blobs_advanced_search? after_action :run_index_integrity_worker, only: :show, if: :no_results_for_group_or_project_blobs_advanced_search?
end end
......
...@@ -15,6 +15,7 @@ import MergeRequestsFilters from '~/search/sidebar/components/merge_requests_fil ...@@ -15,6 +15,7 @@ import MergeRequestsFilters from '~/search/sidebar/components/merge_requests_fil
import BlobsFilters from '~/search/sidebar/components/blobs_filters.vue'; import BlobsFilters from '~/search/sidebar/components/blobs_filters.vue';
import ProjectsFilters from '~/search/sidebar/components/projects_filters.vue'; import ProjectsFilters from '~/search/sidebar/components/projects_filters.vue';
import NotesFilters from '~/search/sidebar/components/notes_filters.vue'; import NotesFilters from '~/search/sidebar/components/notes_filters.vue';
import CommitsFilters from '~/search/sidebar/components/commits_filters.vue';
import ScopeLegacyNavigation from '~/search/sidebar/components/scope_legacy_navigation.vue'; import ScopeLegacyNavigation from '~/search/sidebar/components/scope_legacy_navigation.vue';
import SmallScreenDrawerNavigation from '~/search/sidebar/components/small_screen_drawer_navigation.vue'; import SmallScreenDrawerNavigation from '~/search/sidebar/components/small_screen_drawer_navigation.vue';
import ScopeSidebarNavigation from '~/search/sidebar/components/scope_sidebar_navigation.vue'; import ScopeSidebarNavigation from '~/search/sidebar/components/scope_sidebar_navigation.vue';
...@@ -45,6 +46,7 @@ describe('GlobalSearchSidebar', () => { ...@@ -45,6 +46,7 @@ describe('GlobalSearchSidebar', () => {
provide: { provide: {
glFeatures: { glFeatures: {
searchNotesHideArchivedProjects: true, searchNotesHideArchivedProjects: true,
searchCommitsHideArchivedProjects: true,
}, },
}, },
}); });
...@@ -56,6 +58,7 @@ describe('GlobalSearchSidebar', () => { ...@@ -56,6 +58,7 @@ describe('GlobalSearchSidebar', () => {
const findBlobsFilters = () => wrapper.findComponent(BlobsFilters); const findBlobsFilters = () => wrapper.findComponent(BlobsFilters);
const findProjectsFilters = () => wrapper.findComponent(ProjectsFilters); const findProjectsFilters = () => wrapper.findComponent(ProjectsFilters);
const findNotesFilters = () => wrapper.findComponent(NotesFilters); const findNotesFilters = () => wrapper.findComponent(NotesFilters);
const findCommitsFilters = () => wrapper.findComponent(CommitsFilters);
const findScopeLegacyNavigation = () => wrapper.findComponent(ScopeLegacyNavigation); const findScopeLegacyNavigation = () => wrapper.findComponent(ScopeLegacyNavigation);
const findSmallScreenDrawerNavigation = () => wrapper.findComponent(SmallScreenDrawerNavigation); const findSmallScreenDrawerNavigation = () => wrapper.findComponent(SmallScreenDrawerNavigation);
const findScopeSidebarNavigation = () => wrapper.findComponent(ScopeSidebarNavigation); const findScopeSidebarNavigation = () => wrapper.findComponent(ScopeSidebarNavigation);
...@@ -82,6 +85,8 @@ describe('GlobalSearchSidebar', () => { ...@@ -82,6 +85,8 @@ describe('GlobalSearchSidebar', () => {
${'blobs'} | ${findBlobsFilters} | ${SEARCH_TYPE_ZOEKT} | ${false} ${'blobs'} | ${findBlobsFilters} | ${SEARCH_TYPE_ZOEKT} | ${false}
${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_BASIC} | ${false} ${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_BASIC} | ${false}
${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_ADVANCED} | ${true} ${'notes'} | ${findNotesFilters} | ${SEARCH_TYPE_ADVANCED} | ${true}
${'commits'} | ${findCommitsFilters} | ${SEARCH_TYPE_BASIC} | ${false}
${'commits'} | ${findCommitsFilters} | ${SEARCH_TYPE_ADVANCED} | ${true}
`('with sidebar $scope scope:', ({ scope, filter, searchType, isShown }) => { `('with sidebar $scope scope:', ({ scope, filter, searchType, isShown }) => {
beforeEach(() => { beforeEach(() => {
getterSpies.currentScope = jest.fn(() => scope); getterSpies.currentScope = jest.fn(() => scope);
......
import { shallowMount } from '@vue/test-utils';
import CommitsFilters from '~/search/sidebar/components/projects_filters.vue';
import ArchivedFilter from '~/search/sidebar/components/archived_filter/index.vue';
import FiltersTemplate from '~/search/sidebar/components/filters_template.vue';
describe('GlobalSearch CommitsFilters', () => {
let wrapper;
const findArchivedFilter = () => wrapper.findComponent(ArchivedFilter);
const findFiltersTemplate = () => wrapper.findComponent(FiltersTemplate);
const createComponent = () => {
wrapper = shallowMount(CommitsFilters);
};
describe('Renders correctly', () => {
beforeEach(() => {
createComponent();
});
it('renders ArchivedFilter', () => {
expect(findArchivedFilter().exists()).toBe(true);
});
it('renders FiltersTemplate', () => {
expect(findFiltersTemplate().exists()).toBe(true);
});
});
});
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册