Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[frontend] Minor fixes #4986

Merged
merged 1 commit into from
Nov 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 7 additions & 0 deletions opencti-platform/opencti-front/src/components/Theme.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ declare module '@mui/material/Button' {
}
}

declare module '@mui/material/Button' {
interface ChipPropsColorOverrides {
ee: true
}
}

declare module '@mui/material/SvgIcon' {
interface SvgIconPropsColorOverrides {
ee: true
Expand All @@ -27,6 +33,7 @@ interface ExtendedColor extends PaletteColorOptions {
mode: PaletteMode
background: string
lightBackground: string
contrastText: string
}

interface ExtendedBackground extends TypeBackground {
Expand Down
1 change: 1 addition & 0 deletions opencti-platform/opencti-front/src/components/ThemeDark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ const ThemeDark = (
chip: { main: '#ffffff' },
ee: {
main: EE_COLOR,
contrastText: '#ffffff',
background: hexToRGB(EE_COLOR, 0.2),
lightBackground: hexToRGB(EE_COLOR, 0.08),
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ const ThemeLight = (
main: EE_COLOR,
background: hexToRGB(EE_COLOR, 0.2),
lightBackground: hexToRGB(EE_COLOR, 0.08),
contrastText: '#ffffff',
},
background: {
default: background || '#f3f6f9',
Expand Down
4 changes: 2 additions & 2 deletions opencti-platform/opencti-front/src/private/Analytics.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*/

import googleAnalytics from '@analytics/google-analytics';
import { RootPrivateQuery$data } from './__generated__/RootPrivateQuery.graphql';
import { isNotEmptyField } from '../utils/utils';
import { RootSettings$data } from './__generated__/RootSettings.graphql';

const generateAnalyticsConfig = (settings: RootPrivateQuery$data['settings']) => {
const generateAnalyticsConfig = (settings: RootSettings$data) => {
const isEnterpriseEdition = isNotEmptyField(settings.enterprise_edition);
const googleMeasurement = settings.analytics_google_analytics_v4;
return {
Expand Down
4 changes: 2 additions & 2 deletions opencti-platform/opencti-front/src/private/Index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ import TimeoutLock from './components/TimeoutLock';
import useAuth from '../utils/hooks/useAuth';
import SettingsMessagesBanner, { useSettingsMessagesBannerHeight } from './components/settings/settings_messages/SettingsMessagesBanner';
import { Theme } from '../components/Theme';
import { RootPrivateQuery$data } from './__generated__/RootPrivateQuery.graphql';
import { RootSettings$data } from './__generated__/RootSettings.graphql';

const useStyles = makeStyles((theme: Theme) => ({
toolbar: theme.mixins.toolbar,
}));

interface IndexProps {
settings: RootPrivateQuery$data['settings']
settings: RootSettings$data
}

const Index = ({ settings }: IndexProps) => {
Expand Down
78 changes: 43 additions & 35 deletions opencti-platform/opencti-front/src/private/Root.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { StyledEngineProvider } from '@mui/material/styles';
import React, { FunctionComponent } from 'react';
import { graphql, PreloadedQuery, usePreloadedQuery } from 'react-relay';
import { graphql, PreloadedQuery, useFragment, usePreloadedQuery } from 'react-relay';
import { AnalyticsProvider } from 'use-analytics';
import Analytics from 'analytics';
import { ConnectedIntlProvider } from '../components/AppIntlProvider';
Expand All @@ -10,11 +10,47 @@ import { UserContext } from '../utils/hooks/useAuth';
import platformModuleHelper from '../utils/platformModulesHelper';
import { ONE_SECOND } from '../utils/Time';
import { isNotEmptyField } from '../utils/utils';
import { RootPrivateQuery, RootPrivateQuery$data } from './__generated__/RootPrivateQuery.graphql';
import { RootPrivateQuery } from './__generated__/RootPrivateQuery.graphql';
import Index from './Index';
import useQueryLoading from '../utils/hooks/useQueryLoading';
import Loader from '../components/Loader';
import generateAnalyticsConfig from './Analytics';
import { RootSettings$data, RootSettings$key } from './__generated__/RootSettings.graphql';

const rootSettingsFragment = graphql`
fragment RootSettings on Settings {
id
platform_demo
platform_banner_text
platform_user_statuses {
status
message
}
platform_banner_level
platform_map_tile_server_dark
platform_map_tile_server_light
platform_theme
platform_whitemark
platform_session_idle_timeout
platform_session_timeout
platform_feature_flags {
id
enable
}
platform_modules {
id
enable
running
warning
}
enterprise_edition
...AppThemeProvider_settings
...AppIntlProvider_settings
...PasswordPolicies
...Policies
analytics_google_analytics_v4
}
`;

const rootPrivateQuery = graphql`
query RootPrivateQuery {
Expand Down Expand Up @@ -62,36 +98,7 @@ const rootPrivateQuery = graphql`
}
}
settings {
id
platform_demo
platform_banner_text
platform_user_statuses {
status
message
}
platform_banner_level
platform_map_tile_server_dark
platform_map_tile_server_light
platform_theme
platform_whitemark
platform_session_idle_timeout
platform_session_timeout
platform_feature_flags {
id
enable
}
platform_modules {
id
enable
running
warning
}
enterprise_edition
...AppThemeProvider_settings
...AppIntlProvider_settings
...PasswordPolicies
...Policies
analytics_google_analytics_v4
...RootSettings
}
about {
version
Expand Down Expand Up @@ -142,7 +149,7 @@ const rootPrivateQuery = graphql`
}
`;

const computeBannerSettings = (settings: RootPrivateQuery$data['settings']) => {
const computeBannerSettings = (settings: RootSettings$data) => {
const bannerLevel = settings.platform_banner_level;
const bannerText = settings.platform_banner_text;
const isBannerActivated = isNotEmptyField(bannerLevel) && isNotEmptyField(bannerText);
Expand Down Expand Up @@ -170,7 +177,8 @@ interface RootComponentProps {

const RootComponent: FunctionComponent<RootComponentProps> = ({ queryRef }) => {
const queryData = usePreloadedQuery(rootPrivateQuery, queryRef);
const { me, settings, entitySettings, schemaSCOs, schemaSDOs, schemaSMOs, schemaSROs, schemaRelationsTypesMapping, schemaRelationsRefTypesMapping } = queryData;
const { me, settings: settingsFragment, entitySettings, schemaSCOs, schemaSDOs, schemaSMOs, schemaSROs, schemaRelationsTypesMapping, schemaRelationsRefTypesMapping } = queryData;
const settings = useFragment<RootSettings$key>(rootSettingsFragment, settingsFragment);
const schema = {
scos: schemaSCOs.edges.map((sco) => sco.node),
sdos: schemaSDOs.edges.map((sco) => sco.node),
Expand All @@ -182,7 +190,7 @@ const RootComponent: FunctionComponent<RootComponentProps> = ({ queryRef }) => {
// TODO : Use the hook useHelper when all project is pure function //
const bannerSettings = computeBannerSettings(settings);
const platformModuleHelpers = platformModuleHelper(settings);
const platformAnalyticsConfiguration = generateAnalyticsConfig(queryData.settings);
const platformAnalyticsConfiguration = generateAnalyticsConfig(settings);
return (
<UserContext.Provider
value={{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,12 @@ const EETooltip = ({
}
return (
<>
<Tooltip
title={t(
'You need to activate OpenCTI enterprise edition to use this feature.',
)}
>
<span
onClick={(e) => {
setFeedbackCreation(true);
e.preventDefault();
e.stopPropagation();
}}
>
<Tooltip title={title ? t(title) : undefined}>
<span onClick={(e) => {
setFeedbackCreation(true);
e.preventDefault();
e.stopPropagation();
}}>
{children}
</span>
</Tooltip>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const EnterpriseEditionAgreementMutationFieldPatch = graphql`
settingsEdit(id: $id) {
fieldPatch(input: $input) {
id
...RootSettings
}
}
}
Expand Down Expand Up @@ -45,9 +46,6 @@ EnterpriseEditionAgreementProps
value: now(),
},
},
onCompleted: () => {
window.location.reload();
},
});
onClose();
};
Expand Down
3 changes: 2 additions & 1 deletion opencti-platform/opencti-front/src/utils/hooks/useAuth.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { useContext } from 'react';
import { RootPrivateQuery$data } from '../../private/__generated__/RootPrivateQuery.graphql';
import { ModuleHelper } from '../platformModulesHelper';
import { RootSettings$data } from '../../private/__generated__/RootSettings.graphql';

export interface BannerSettings {
bannerLevel?: string | null;
Expand All @@ -13,7 +14,7 @@ export interface BannerSettings {

export interface UserContextType {
me: RootPrivateQuery$data['me'] | undefined;
settings: RootPrivateQuery$data['settings'] | undefined;
settings: RootSettings$data | undefined;
bannerSettings: BannerSettings | undefined;
entitySettings: RootPrivateQuery$data['entitySettings'] | undefined;
platformModuleHelpers: ModuleHelper | undefined;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { RootPrivateQuery$data } from '../private/__generated__/RootPrivateQuery.graphql';
import { RootSettings$data } from '../private/__generated__/RootSettings.graphql';

export const DISABLE_MANAGER_MESSAGE = 'To use this feature, your platform administrator must enable the according manager in the config.';

Expand Down Expand Up @@ -31,7 +31,7 @@ export interface ModuleHelper {
}

const isFeatureEnable = (
settings: RootPrivateQuery$data['settings'],
settings: RootSettings$data,
id: string,
) => {
const flags = settings.platform_feature_flags ?? [];
Expand All @@ -40,7 +40,7 @@ const isFeatureEnable = (
};

const isModuleEnable = (
settings: RootPrivateQuery$data['settings'],
settings: RootSettings$data,
id: string,
) => {
const modules = settings.platform_modules || [];
Expand All @@ -49,7 +49,7 @@ const isModuleEnable = (
};

const isModuleWarning = (
settings: RootPrivateQuery$data['settings'],
settings: RootSettings$data,
id: string,
) => {
const modules = settings.platform_modules || [];
Expand All @@ -58,7 +58,7 @@ const isModuleWarning = (
};

const platformModuleHelper = (
settings: RootPrivateQuery$data['settings'],
settings: RootSettings$data,
): ModuleHelper => ({
isModuleEnable: (id: string) => isModuleEnable(settings, id),
isModuleWarning: (id: string) => isModuleWarning(settings, id),
Expand Down