Skip to content

Commit 06abb28

Browse files
committed
EPMRPP-103275 || Footer links. Add pageview events for Server settings
1 parent 95f5272 commit 06abb28

File tree

5 files changed

+53
-39
lines changed

5 files changed

+53
-39
lines changed

app/src/common/constants/settingsTabs.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const INTEGRATIONS = 'integrations';
2020
export const DEFECT = 'defect';
2121
export const ANALYSIS = 'analyzer';
2222
export const DEMO_DATA = 'demoData';
23-
export const AUTHORIZATION_CONFIGURATION = 'auth';
23+
export const AUTHORIZATION_CONFIGURATION = 'authConfiguration';
2424
export const ANALYTICS = 'analytics';
2525
export const LINKS_AND_BRANDING = 'linksAndBranding';
2626
export const PATTERN_ANALYSIS = 'patternAnalysis';

app/src/components/main/analytics/events/adminServerSettingsPageEvents.js

+6
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ const DEFAULT_FOOTER_LINK_NAMES = [
3737
'EPAM',
3838
];
3939

40+
export const getServerSettingsPageViewEvent = (activeTab) => ({
41+
action: 'pageview',
42+
page: ADMIN_SERVER_SETTINGS_PAGE,
43+
place: `${ADMIN_SERVER_SETTINGS_PAGE}_${activeTab.toLowerCase()}`,
44+
});
45+
4046
export const ADMIN_SERVER_SETTINGS_PAGE_EVENTS = {
4147
toggleSsoUsers: (switcherValue) => ({
4248
...basicClickEventParametersAdminServerSettingsPage,

app/src/pages/admin/serverSettingsPage/serverSettingsPage.jsx

-3
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@ import React, { Component } from 'react';
1818
import PropTypes from 'prop-types';
1919
import { injectIntl, defineMessages } from 'react-intl';
2020
import { PageLayout, PageHeader, PageSection } from 'layouts/pageLayout';
21-
import track from 'react-tracking';
22-
import { ADMIN_SERVER_SETTINGS_PAGE } from 'components/main/analytics/events';
2321
import { ServerSettingsTabs } from './serverSettingsTabs';
2422

2523
const messages = defineMessages({
@@ -30,7 +28,6 @@ const messages = defineMessages({
3028
});
3129

3230
@injectIntl
33-
@track({ page: ADMIN_SERVER_SETTINGS_PAGE })
3431
export class ServerSettingsPage extends Component {
3532
static propTypes = {
3633
intl: PropTypes.object.isRequired,

app/src/pages/admin/serverSettingsPage/serverSettingsTabs/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
* limitations under the License.
1515
*/
1616

17-
export { ServerSettingsTabs } from './serverSettingsTabs';
17+
export { ServerSettingsTabsWrapper as ServerSettingsTabs } from './serverSettingsTabs';

app/src/pages/admin/serverSettingsPage/serverSettingsTabs/serverSettingsTabs.jsx

+45-34
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,22 @@
1414
* limitations under the License.
1515
*/
1616

17-
import React, { Component } from 'react';
17+
import React, { useEffect } from 'react';
1818
import PropTypes from 'prop-types';
1919
import { connect } from 'react-redux';
2020
import { defineMessages, injectIntl } from 'react-intl';
21+
import { useTracking } from 'react-tracking';
2122
import { SERVER_SETTINGS_TAB_PAGE, settingsTabSelector } from 'controllers/pages';
2223
import {
2324
AUTHORIZATION_CONFIGURATION,
2425
ANALYTICS,
2526
LINKS_AND_BRANDING,
2627
} from 'common/constants/settingsTabs';
2728
import { NavigationTabs } from 'components/main/navigationTabs';
28-
import { ADMIN_SERVER_SETTINGS_PAGE_EVENTS } from 'components/main/analytics/events';
29+
import {
30+
getServerSettingsPageViewEvent,
31+
ADMIN_SERVER_SETTINGS_PAGE_EVENTS,
32+
} from 'components/main/analytics/events/adminServerSettingsPageEvents';
2933
import { AuthConfigurationTab } from './authConfigurationTab';
3034
import { AnalyticsTab } from './analyticsTab';
3135
import { LinksAndBrandingTab } from './linksAndBrandingTab';
@@ -45,61 +49,68 @@ const messages = defineMessages({
4549
},
4650
});
4751

48-
@connect(
49-
(state) => ({
50-
activeTab: settingsTabSelector(state),
51-
}),
52-
{
53-
onChangeTab: (linkAction) => linkAction,
54-
},
55-
)
56-
@injectIntl
57-
export class ServerSettingsTabs extends Component {
58-
static propTypes = {
59-
intl: PropTypes.object.isRequired,
60-
activeTab: PropTypes.string,
61-
onChangeTab: PropTypes.func,
62-
};
63-
static defaultProps = {
64-
activeTab: AUTHORIZATION_CONFIGURATION,
65-
onChangeTab: () => {},
66-
};
52+
const ServerSettingsTabs = ({ activeTab, onChangeTab, intl }) => {
53+
const { trackEvent } = useTracking();
54+
55+
useEffect(() => {
56+
if (activeTab) {
57+
trackEvent(getServerSettingsPageViewEvent(activeTab));
58+
}
59+
}, [activeTab, trackEvent]);
6760

68-
createTabLink = (tabName) => ({
61+
const createTabLink = (tabName) => ({
6962
type: SERVER_SETTINGS_TAB_PAGE,
7063
payload: { settingsTab: tabName },
7164
});
7265

73-
createTabsConfig = () => ({
66+
const createTabsConfig = () => ({
7467
[AUTHORIZATION_CONFIGURATION]: {
75-
name: this.props.intl.formatMessage(messages.authConfiguration),
76-
link: this.createTabLink(AUTHORIZATION_CONFIGURATION),
68+
name: intl.formatMessage(messages.authConfiguration),
69+
link: createTabLink(AUTHORIZATION_CONFIGURATION),
7770
component: <AuthConfigurationTab />,
7871
mobileDisabled: true,
7972
eventInfo: ADMIN_SERVER_SETTINGS_PAGE_EVENTS.AUTHORIZATION_CONFIGURATION_TAB,
8073
},
8174
[ANALYTICS]: {
82-
name: this.props.intl.formatMessage(messages.statistics),
83-
link: this.createTabLink(ANALYTICS),
75+
name: intl.formatMessage(messages.statistics),
76+
link: createTabLink(ANALYTICS),
8477
component: <AnalyticsTab />,
8578
mobileDisabled: true,
8679
eventInfo: ADMIN_SERVER_SETTINGS_PAGE_EVENTS.ANALYTICS_TAB,
8780
},
8881
[LINKS_AND_BRANDING]: {
89-
name: this.props.intl.formatMessage(messages.linksAndBranding),
90-
link: this.createTabLink(LINKS_AND_BRANDING),
82+
name: intl.formatMessage(messages.linksAndBranding),
83+
link: createTabLink(LINKS_AND_BRANDING),
9184
component: <LinksAndBrandingTab />,
9285
mobileDisabled: true,
9386
eventInfo: ADMIN_SERVER_SETTINGS_PAGE_EVENTS.LINKS_AND_BRANDING_TAB,
9487
},
9588
});
9689

97-
render = () => (
90+
return (
9891
<NavigationTabs
99-
config={this.createTabsConfig()}
100-
activeTab={this.props.activeTab}
101-
onChangeTab={this.props.onChangeTab}
92+
config={createTabsConfig()}
93+
activeTab={activeTab}
94+
onChangeTab={onChangeTab}
10295
mobileDisabled
10396
/>
10497
);
105-
}
98+
};
99+
ServerSettingsTabs.propTypes = {
100+
intl: PropTypes.object.isRequired,
101+
activeTab: PropTypes.string,
102+
onChangeTab: PropTypes.func,
103+
};
104+
ServerSettingsTabs.defaultProps = {
105+
activeTab: AUTHORIZATION_CONFIGURATION,
106+
onChangeTab: () => {},
107+
};
108+
109+
export const ServerSettingsTabsWrapper = connect(
110+
(state) => ({
111+
activeTab: settingsTabSelector(state),
112+
}),
113+
{
114+
onChangeTab: (linkAction) => linkAction,
115+
},
116+
)(injectIntl(ServerSettingsTabs));

0 commit comments

Comments
 (0)