mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-14 06:05:58 +08:00
feat: enable ms teams channel for all users (#7144)
* feat: enable ms teams channel for all users * fix: update copy in test files
This commit is contained in:
parent
639b9a5a8a
commit
858944d273
@ -1,31 +0,0 @@
|
|||||||
import { Alert, Space } from 'antd';
|
|
||||||
import { SIGNOZ_UPGRADE_PLAN_URL } from 'constants/app';
|
|
||||||
|
|
||||||
type UpgradePromptProps = {
|
|
||||||
title?: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
function UpgradePrompt({ title }: UpgradePromptProps): JSX.Element {
|
|
||||||
return (
|
|
||||||
<Space direction="vertical" style={{ width: '100%' }}>
|
|
||||||
<Alert
|
|
||||||
message={title}
|
|
||||||
description={
|
|
||||||
<div>
|
|
||||||
This feature is available for paid plans only.{' '}
|
|
||||||
<a href={SIGNOZ_UPGRADE_PLAN_URL} target="_blank" rel="noreferrer">
|
|
||||||
Click here
|
|
||||||
</a>{' '}
|
|
||||||
to Upgrade
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
type="warning"
|
|
||||||
/>{' '}
|
|
||||||
</Space>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
UpgradePrompt.defaultProps = {
|
|
||||||
title: 'Upgrade to a Paid Plan',
|
|
||||||
};
|
|
||||||
export default UpgradePrompt;
|
|
@ -378,9 +378,7 @@ describe('Create Alert Channel', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Should check if the selected item in the type dropdown has text "msteams"', () => {
|
it('Should check if the selected item in the type dropdown has text "msteams"', () => {
|
||||||
expect(
|
expect(screen.getByText('Microsoft Teams')).toBeInTheDocument();
|
||||||
screen.getByText('Microsoft Teams (Supported in Paid Plans Only)'),
|
|
||||||
).toBeInTheDocument();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should check if Webhook URL label and input are displayed properly ', () => {
|
it('Should check if Webhook URL label and input are displayed properly ', () => {
|
||||||
|
@ -308,10 +308,8 @@ describe('Create Alert Channel (Normal User)', () => {
|
|||||||
render(<CreateAlertChannels preType={ChannelType.MsTeams} />);
|
render(<CreateAlertChannels preType={ChannelType.MsTeams} />);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should check if the selected item in the type dropdown has text "Microsoft Teams (Supported in Paid Plans Only)"', () => {
|
it('Should check if the selected item in the type dropdown has text "Microsoft Teams"', () => {
|
||||||
expect(
|
expect(screen.getByText('Microsoft Teams')).toBeInTheDocument();
|
||||||
screen.getByText('Microsoft Teams (Supported in Paid Plans Only)'),
|
|
||||||
).toBeInTheDocument();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO[vikrantgupta25]: check with Shaheer
|
// TODO[vikrantgupta25]: check with Shaheer
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { Form, FormInstance, Input, Select, Switch, Typography } from 'antd';
|
import { Form, FormInstance, Input, Select, Switch, Typography } from 'antd';
|
||||||
import { Store } from 'antd/lib/form/interface';
|
import { Store } from 'antd/lib/form/interface';
|
||||||
import UpgradePrompt from 'components/Upgrade/UpgradePrompt';
|
|
||||||
import { FeatureKeys } from 'constants/features';
|
import { FeatureKeys } from 'constants/features';
|
||||||
import ROUTES from 'constants/routes';
|
import ROUTES from 'constants/routes';
|
||||||
import {
|
import {
|
||||||
@ -15,6 +14,7 @@ import history from 'lib/history';
|
|||||||
import { useAppContext } from 'providers/App/App';
|
import { useAppContext } from 'providers/App/App';
|
||||||
import { Dispatch, ReactElement, SetStateAction } from 'react';
|
import { Dispatch, ReactElement, SetStateAction } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
|
import { FeatureFlagProps } from 'types/api/features/getFeaturesFlags';
|
||||||
import { isFeatureKeys } from 'utils/app';
|
import { isFeatureKeys } from 'utils/app';
|
||||||
|
|
||||||
import EmailSettings from './Settings/Email';
|
import EmailSettings from './Settings/Email';
|
||||||
@ -40,32 +40,18 @@ function FormAlertChannels({
|
|||||||
}: FormAlertChannelsProps): JSX.Element {
|
}: FormAlertChannelsProps): JSX.Element {
|
||||||
const { t } = useTranslation('channels');
|
const { t } = useTranslation('channels');
|
||||||
const { featureFlags } = useAppContext();
|
const { featureFlags } = useAppContext();
|
||||||
const isUserOnEEPlan =
|
|
||||||
featureFlags?.find((flag) => flag.name === FeatureKeys.ENTERPRISE_PLAN)
|
|
||||||
?.active || false;
|
|
||||||
|
|
||||||
const feature = `ALERT_CHANNEL_${type.toUpperCase()}`;
|
const feature = `ALERT_CHANNEL_${type.toUpperCase()}`;
|
||||||
|
|
||||||
const featureKey = isFeatureKeys(feature)
|
const featureKey = isFeatureKeys(feature)
|
||||||
? feature
|
? feature
|
||||||
: FeatureKeys.ALERT_CHANNEL_SLACK;
|
: FeatureKeys.ALERT_CHANNEL_SLACK;
|
||||||
const hasFeature = featureFlags?.find((flag) => flag.name === featureKey);
|
|
||||||
|
|
||||||
const isOssFeature = featureFlags?.find(
|
const hasFeature = featureFlags?.find(
|
||||||
(flag) => flag.name === FeatureKeys.OSS,
|
(flag: FeatureFlagProps) => flag.name === featureKey,
|
||||||
);
|
);
|
||||||
|
|
||||||
const renderSettings = (): ReactElement | null => {
|
const renderSettings = (): ReactElement | null => {
|
||||||
if (
|
|
||||||
// for ee plan
|
|
||||||
!isOssFeature?.active &&
|
|
||||||
(!hasFeature || !hasFeature.active) &&
|
|
||||||
type === 'msteams'
|
|
||||||
) {
|
|
||||||
// channel type is not available for users plan
|
|
||||||
return <UpgradePrompt />;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ChannelType.Slack:
|
case ChannelType.Slack:
|
||||||
return <SlackSettings setSelectedConfig={setSelectedConfig} />;
|
return <SlackSettings setSelectedConfig={setSelectedConfig} />;
|
||||||
@ -149,13 +135,10 @@ function FormAlertChannels({
|
|||||||
<Select.Option value="email" key="email" data-testid="select-option">
|
<Select.Option value="email" key="email" data-testid="select-option">
|
||||||
Email
|
Email
|
||||||
</Select.Option>
|
</Select.Option>
|
||||||
{!isOssFeature?.active && (
|
|
||||||
<Select.Option value="msteams" key="msteams" data-testid="select-option">
|
<Select.Option value="msteams" key="msteams" data-testid="select-option">
|
||||||
<div>
|
Microsoft Teams
|
||||||
Microsoft Teams {!isUserOnEEPlan && '(Supported in Paid Plans Only)'}{' '}
|
</Select.Option>
|
||||||
</div>
|
|
||||||
</Select.Option>
|
|
||||||
)}
|
|
||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
|
@ -222,6 +222,8 @@ export const routesToSkip = [
|
|||||||
ROUTES.METRICS_EXPLORER,
|
ROUTES.METRICS_EXPLORER,
|
||||||
ROUTES.METRICS_EXPLORER_EXPLORER,
|
ROUTES.METRICS_EXPLORER_EXPLORER,
|
||||||
ROUTES.METRICS_EXPLORER_VIEWS,
|
ROUTES.METRICS_EXPLORER_VIEWS,
|
||||||
|
ROUTES.CHANNELS_NEW,
|
||||||
|
ROUTES.CHANNELS_EDIT,
|
||||||
];
|
];
|
||||||
|
|
||||||
export const routesToDisable = [ROUTES.LOGS_EXPLORER, ROUTES.LIVE_LOGS];
|
export const routesToDisable = [ROUTES.LOGS_EXPLORER, ROUTES.LIVE_LOGS];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user