diff --git a/app/assets/javascripts/members/components/members_tabs.vue b/app/assets/javascripts/members/components/members_tabs.vue index 166b3f970f62913f9cebd879df47c562fb232a6a..84b2fb6d9ae4495f06e846a3b45d35e806257b16 100644 --- a/app/assets/javascripts/members/components/members_tabs.vue +++ b/app/assets/javascripts/members/components/members_tabs.vue @@ -3,7 +3,8 @@ import { GlTabs, GlTab, GlBadge, GlButton } from '@gitlab/ui'; // eslint-disable-next-line no-restricted-imports import { mapState } from 'vuex'; import { queryToObject } from '~/lib/utils/url_utility'; -import { MEMBER_TYPES, TABS, ACTIVE_TAB_QUERY_PARAM_NAME } from 'ee_else_ce/members/constants'; +import { MEMBER_TYPES, ACTIVE_TAB_QUERY_PARAM_NAME } from 'ee_else_ce/members/constants'; +import { TABS } from 'ee_else_ce/members/tabs_metadata'; import MembersApp from './app.vue'; const countComputed = (state, namespace) => state[namespace]?.pagination?.totalItems || 0; diff --git a/app/assets/javascripts/members/constants.js b/app/assets/javascripts/members/constants.js index c2e5f3fa44eb0ec1bba94008183125ecf01902bf..33379452eaa11925535aa27205df4f467353068a 100644 --- a/app/assets/javascripts/members/constants.js +++ b/app/assets/javascripts/members/constants.js @@ -3,8 +3,6 @@ import { GlFilteredSearchToken } from '@gitlab/ui'; import { __, s__ } from '~/locale'; import { OPERATORS_IS } from '~/vue_shared/components/filtered_search_bar/constants'; -import PlaceholdersTabApp from './components/placeholders/app.vue'; - // Overridden in EE export const EE_GROUPS_APP_OPTIONS = {}; export const EE_PROJECTS_APP_OPTIONS = {}; @@ -184,38 +182,6 @@ export const TAB_QUERY_PARAM_VALUES = Object.freeze({ placeholder: 'placeholders', }); -// Overridden in EE -export const TABS = [ - { - namespace: MEMBER_TYPES.user, - title: __('Members'), - }, - { - namespace: MEMBER_TYPES.group, - title: __('Groups'), - attrs: { 'data-testid': 'groups-list-tab' }, - queryParamValue: TAB_QUERY_PARAM_VALUES.group, - }, - { - namespace: MEMBER_TYPES.invite, - title: s__('Members|Pending invitations'), - requiredPermissions: ['canManageMembers'], - queryParamValue: TAB_QUERY_PARAM_VALUES.invite, - }, - { - namespace: MEMBER_TYPES.accessRequest, - title: __('Access requests'), - requiredPermissions: ['canManageAccessRequests'], - queryParamValue: TAB_QUERY_PARAM_VALUES.accessRequest, - }, - { - namespace: MEMBER_TYPES.placeholder, - title: s__('UserMapping|Placeholders'), - queryParamValue: TAB_QUERY_PARAM_VALUES.placeholder, - component: PlaceholdersTabApp, - }, -]; - /** * This user state value comes from the User model * see the state machine in app/models/user.rb diff --git a/app/assets/javascripts/members/index.js b/app/assets/javascripts/members/index.js index 7eea0a7ebda627d000c4e8f48398e31b5f33fd2f..d2b4bf8181c002e8d5ff407d5ae0813d80764a69 100644 --- a/app/assets/javascripts/members/index.js +++ b/app/assets/javascripts/members/index.js @@ -5,7 +5,7 @@ import Vuex from 'vuex'; import VueApollo from 'vue-apollo'; import createDefaultClient from '~/lib/graphql'; import { parseDataAttributes } from '~/members/utils'; -import { TABS } from 'ee_else_ce/members/constants'; +import { TABS } from 'ee_else_ce/members/tabs_metadata'; import MembersTabs from './components/members_tabs.vue'; import membersStore from './store'; diff --git a/app/assets/javascripts/members/tabs_metadata.js b/app/assets/javascripts/members/tabs_metadata.js new file mode 100644 index 0000000000000000000000000000000000000000..0ef7cbf3da86b5e1f47ef1f9e15523a54e3dd857 --- /dev/null +++ b/app/assets/javascripts/members/tabs_metadata.js @@ -0,0 +1,35 @@ +import { __, s__ } from '~/locale'; +import PlaceholdersTabApp from './components/placeholders/app.vue'; +import { MEMBER_TYPES, TAB_QUERY_PARAM_VALUES } from './constants'; + +// Overridden in EE +export const TABS = [ + { + namespace: MEMBER_TYPES.user, + title: __('Members'), + }, + { + namespace: MEMBER_TYPES.group, + title: __('Groups'), + attrs: { 'data-testid': 'groups-list-tab' }, + queryParamValue: TAB_QUERY_PARAM_VALUES.group, + }, + { + namespace: MEMBER_TYPES.invite, + title: s__('Members|Pending invitations'), + requiredPermissions: ['canManageMembers'], + queryParamValue: TAB_QUERY_PARAM_VALUES.invite, + }, + { + namespace: MEMBER_TYPES.accessRequest, + title: __('Access requests'), + requiredPermissions: ['canManageAccessRequests'], + queryParamValue: TAB_QUERY_PARAM_VALUES.accessRequest, + }, + { + namespace: MEMBER_TYPES.placeholder, + title: s__('UserMapping|Placeholders'), + queryParamValue: TAB_QUERY_PARAM_VALUES.placeholder, + component: PlaceholdersTabApp, + }, +]; diff --git a/ee/app/assets/javascripts/members/constants.js b/ee/app/assets/javascripts/members/constants.js index 6dfdee96edaf7019aeab810c81b5def6fbbf8ab7..dabf24a50008ffd75eb3a3f741a7409a63b136fb 100644 --- a/ee/app/assets/javascripts/members/constants.js +++ b/ee/app/assets/javascripts/members/constants.js @@ -7,11 +7,8 @@ import { AVAILABLE_FILTERED_SEARCH_TOKENS as AVAILABLE_FILTERED_SEARCH_TOKENS_CE, MEMBER_TYPES as MEMBER_TYPES_CE, TAB_QUERY_PARAM_VALUES as CE_TAB_QUERY_PARAM_VALUES, - TABS as CE_TABS, } from '~/members/constants'; import { helpPagePath } from '~/helpers/help_page_helper'; -import PromotionRequestsTabApp from './promotion_requests/components/app.vue'; -import promotionRequestsTabStore from './promotion_requests/store/index'; // eslint-disable-next-line import/export export * from '~/members/constants'; @@ -76,23 +73,6 @@ export const TAB_QUERY_PARAM_VALUES = Object.freeze({ banned: 'banned', }); -// eslint-disable-next-line import/export -export const TABS = [ - ...CE_TABS, - { - namespace: MEMBER_TYPES.promotionRequest, - title: __('Promotions'), - queryParamValue: TAB_QUERY_PARAM_VALUES.promotionRequest, - component: PromotionRequestsTabApp, - store: promotionRequestsTabStore, - }, - { - namespace: MEMBER_TYPES.banned, - title: __('Banned'), - queryParamValue: TAB_QUERY_PARAM_VALUES.banned, - }, -]; - const APP_OPTIONS_BASE = { [MEMBER_TYPES.promotionRequest]: gon.features?.memberPromotionManagement, }; diff --git a/ee/app/assets/javascripts/members/tabs_metadata.js b/ee/app/assets/javascripts/members/tabs_metadata.js new file mode 100644 index 0000000000000000000000000000000000000000..b72bf56aa1bd1810ba15d80997424b59256acb23 --- /dev/null +++ b/ee/app/assets/javascripts/members/tabs_metadata.js @@ -0,0 +1,21 @@ +import { __ } from '~/locale'; +import { TABS as CE_TABS } from '~/members/tabs_metadata'; +import PromotionRequestsTabApp from './promotion_requests/components/app.vue'; +import promotionRequestsTabStore from './promotion_requests/store/index'; +import { MEMBER_TYPES, TAB_QUERY_PARAM_VALUES } from './constants'; + +export const TABS = [ + ...CE_TABS, + { + namespace: MEMBER_TYPES.promotionRequest, + title: __('Promotions'), + queryParamValue: TAB_QUERY_PARAM_VALUES.promotionRequest, + component: PromotionRequestsTabApp, + store: promotionRequestsTabStore, + }, + { + namespace: MEMBER_TYPES.banned, + title: __('Banned'), + queryParamValue: TAB_QUERY_PARAM_VALUES.banned, + }, +]; diff --git a/ee/spec/frontend/members/components/members_tabs_spec.js b/ee/spec/frontend/members/components/members_tabs_spec.js index 589b1581c79d3411ed89d3ade3f8eaf8b99b1713..26e07de87343c521c6bc57957b68ad6e684817e2 100644 --- a/ee/spec/frontend/members/components/members_tabs_spec.js +++ b/ee/spec/frontend/members/components/members_tabs_spec.js @@ -5,7 +5,8 @@ import { pagination } from 'ee_else_ce_jest/members/mock_data'; import { mountExtended } from 'helpers/vue_test_utils_helper'; import MembersApp from '~/members/components/app.vue'; import MembersTabs from '~/members/components/members_tabs.vue'; -import { MEMBER_TYPES, TABS } from 'ee_else_ce/members/constants'; +import { MEMBER_TYPES } from 'ee_else_ce/members/constants'; +import { TABS } from 'ee_else_ce/members/tabs_metadata'; describe('MembersTabs', () => { Vue.use(Vuex); diff --git a/qa/qa/page/component/members/members_table.rb b/qa/qa/page/component/members/members_table.rb index 6642e37202c59c81e4e196f94ef81d590e81df06..bd23fef32bcbca9d2ade3a6b91868d947c91fa8a 100644 --- a/qa/qa/page/component/members/members_table.rb +++ b/qa/qa/page/component/members/members_table.rb @@ -38,7 +38,7 @@ def self.included(base) element 'approve-access-request-button' end - base.view 'app/assets/javascripts/members/constants.js' do + base.view 'app/assets/javascripts/members/tabs_metadata.js' do element 'groups-list-tab' end