diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts index 8180f781176441..fe5fc7beeb8fa9 100644 --- a/x-pack/plugins/security_solution/common/experimental_features.ts +++ b/x-pack/plugins/security_solution/common/experimental_features.ts @@ -12,8 +12,6 @@ export type ExperimentalFeatures = { [K in keyof typeof allowedExperimentalValue * This object is then used to validate and parse the value entered. */ export const allowedExperimentalValues = Object.freeze({ - tGridEnabled: true, - // FIXME:PT delete? excludePoliciesInFilterEnabled: false, diff --git a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx index b6e8985c1d15db..ffb0361561f631 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_tab/events_query_tab_body.tsx @@ -29,8 +29,6 @@ import { getDefaultControlColumn } from '../../../timelines/components/timeline/ import { defaultRowRenderers } from '../../../timelines/components/timeline/body/renderers'; import { DefaultCellRenderer } from '../../../timelines/components/timeline/cell_rendering/default_cell_renderer'; import { SourcererScopeName } from '../../store/sourcerer/model'; -import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; -import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants'; import type { GlobalTimeArgs } from '../../containers/use_global_time'; import type { QueryTabBodyProps as UserQueryTabBodyProps } from '../../../explore/users/pages/navigation/types'; import type { QueryTabBodyProps as HostQueryTabBodyProps } from '../../../explore/hosts/pages/navigation/types'; @@ -74,7 +72,6 @@ const EventsQueryTabBodyComponent: React.FC = }) => { const dispatch = useDispatch(); const { globalFullScreen } = useGlobalFullScreen(); - const tGridEnabled = useIsExperimentalFeatureEnabled('tGridEnabled'); const [defaultNumberFormat] = useUiSetting$(DEFAULT_NUMBER_FORMAT); const isEnterprisePlus = useLicense().isEnterprise(); const ACTION_BUTTON_COUNT = isEnterprisePlus ? 5 : 4; @@ -101,20 +98,13 @@ const EventsQueryTabBodyComponent: React.FC = dispatch( dataTableActions.initializeDataTableSettings({ id: tableId, - defaultColumns: eventsDefaultModel.columns.map((c) => - !tGridEnabled && c.initialWidth == null - ? { - ...c, - initialWidth: DEFAULT_COLUMN_MIN_WIDTH, - } - : c - ), + defaultColumns: eventsDefaultModel.columns, title: i18n.EVENTS_GRAPH_TITLE, showCheckboxes: true, selectAll: true, }) ); - }, [dispatch, showExternalAlerts, tGridEnabled, tableId]); + }, [dispatch, showExternalAlerts, tableId]); useEffect(() => { return () => { diff --git a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx index 9c79d28ce20698..d31564e8bd1af9 100644 --- a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.test.tsx @@ -127,37 +127,6 @@ describe('Actions', () => { (useShallowEqualSelector as jest.Mock).mockReturnValue(mockTimelineModel); }); - test('it renders a checkbox for selecting the event when `showCheckboxes` is `true`', () => { - const wrapper = mount( - - - - ); - - expect(wrapper.find('[data-test-subj="select-event"]').exists()).toEqual(true); - }); - - test('it does NOT render a checkbox for selecting the event when `showCheckboxes` is `false`', () => { - const wrapper = mount( - - - - ); - - expect(wrapper.find('[data-test-subj="select-event"]').exists()).toBe(false); - }); - - test('it does NOT render a checkbox for selecting the event when `tGridEnabled` is `true`', () => { - (useIsExperimentalFeatureEnabled as jest.Mock).mockReturnValue(true); - const wrapper = mount( - - - - ); - - expect(wrapper.find('[data-test-subj="select-event"]').exists()).toBe(false); - }); - describe('Guided Onboarding Step', () => { const incrementStepMock = jest.fn(); beforeEach(() => { diff --git a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx index 35028da2169a2b..6efaaa5d01ccdb 100644 --- a/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx +++ b/x-pack/plugins/security_solution/public/common/components/header_actions/actions.tsx @@ -7,7 +7,7 @@ import React, { useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; -import { EuiButtonIcon, EuiCheckbox, EuiLoadingSpinner, EuiToolTip } from '@elastic/eui'; +import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; import styled from 'styled-components'; import { TimelineTabs, TableId } from '@kbn/securitysolution-data-table'; @@ -48,26 +48,20 @@ const ActionsContainer = styled.div` const ActionsComponent: React.FC = ({ ariaRowindex, - checked, columnValues, ecsData, eventId, eventIdToNoteIds, isEventPinned = false, isEventViewer = false, - loadingEventIds, onEventDetailsPanelOpened, - onRowSelected, onRuleChange, - showCheckboxes, showNotes, timelineId, toggleShowNotes, refetch, - setEventsLoading, }) => { const dispatch = useDispatch(); - const tGridEnabled = useIsExperimentalFeatureEnabled('tGridEnabled'); const unifiedComponentsInTimelineEnabled = useIsExperimentalFeatureEnabled( 'unifiedComponentsInTimelineEnabled' ); @@ -91,15 +85,6 @@ const ActionsComponent: React.FC = ({ [dispatch, timelineId] ); - const handleSelectEvent = useCallback( - (event: React.ChangeEvent) => - onRowSelected({ - eventIds: [eventId], - isSelected: event.currentTarget.checked, - }), - [eventId, onRowSelected] - ); - const handlePinClicked = useCallback( () => getPinOnClick({ @@ -234,23 +219,6 @@ const ActionsComponent: React.FC = ({ return ( - {showCheckboxes && !tGridEnabled && ( -
- - {loadingEventIds.includes(eventId) ? ( - - ) : ( - - )} - -
- )} <> {showExpandEvent && ( - i18n.translate('xpack.securitySolution.hoverActions.checkboxForRowAriaLabel', { - values: { ariaRowindex, checked, columnValues }, - defaultMessage: - '{checked, select, false {unchecked} true {checked}} checkbox for the alert or event in row {ariaRowindex}, with columns {columnValues}', - }); - export const ACTION_INVESTIGATE_IN_RESOLVER_FOR_ROW = ({ ariaRowindex, columnValues, diff --git a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx index c208844dcf554a..5795ff57b772ef 100644 --- a/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/sessions_viewer/index.tsx @@ -23,8 +23,6 @@ import { SourcererScopeName } from '../../store/sourcerer/model'; import { getDefaultControlColumn } from '../../../timelines/components/timeline/body/control_columns'; import { useLicense } from '../../hooks/use_license'; import { eventsDefaultModel } from '../events_viewer/default_model'; -import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; -import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants'; import type { BulkActionsProp } from '../toolbar/bulk_actions/types'; import { SecurityCellActionsTrigger } from '../cell_actions'; @@ -85,7 +83,6 @@ const SessionsViewComponent: React.FC = ({ defaultColumns = sessionsHeaders, }) => { const dispatch = useDispatch(); - const tGridEnabled = useIsExperimentalFeatureEnabled('tGridEnabled'); const parsedFilterQuery: ESBoolQuery = useMemo(() => { if (filterQuery && filterQuery !== '') { return JSON.parse(filterQuery); @@ -115,19 +112,12 @@ const SessionsViewComponent: React.FC = ({ dataTableActions.initializeDataTableSettings({ id: tableId, title: i18n.SESSIONS_TITLE, - defaultColumns: eventsDefaultModel.columns.map((c) => - !tGridEnabled && c.initialWidth == null - ? { - ...c, - initialWidth: DEFAULT_COLUMN_MIN_WIDTH, - } - : c - ), + defaultColumns: eventsDefaultModel.columns, showCheckboxes: true, selectAll: true, }) ); - }, [dispatch, tGridEnabled, tableId]); + }, [dispatch, tableId]); const isEnterprisePlus = useLicense().isEnterprise(); const ACTION_BUTTON_COUNT = diff --git a/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.test.tsx index ce5126664fb14e..442b4b2d4ff62f 100644 --- a/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.test.tsx @@ -66,10 +66,6 @@ jest.mock('../../../common/hooks/use_license', () => ({ useLicense: jest.fn().mockReturnValue({ isPlatinumPlus: () => true, isEnterprise: () => false }), })); -jest.mock('../../../common/hooks/use_experimental_features', () => ({ - useIsExperimentalFeatureEnabled: jest.fn().mockReturnValue(true), -})); - jest.mock('../../../common/utils/endpoint_alert_check', () => { const realEndpointAlertCheckUtils = jest.requireActual( '../../../common/utils/endpoint_alert_check' diff --git a/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.tsx b/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.tsx index f8efc47d3bd1ad..2c769b81b0481b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/take_action_dropdown/index.tsx @@ -28,7 +28,6 @@ import { useHostIsolationAction } from '../host_isolation/use_host_isolation_act import { getFieldValue } from '../host_isolation/helpers'; import type { Status } from '../../../../common/api/detection_engine'; import { isAlertFromEndpointAlert } from '../../../common/utils/endpoint_alert_check'; -import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; import { useUserPrivileges } from '../../../common/components/user_privileges'; import { useAddToCaseActions } from '../alerts_table/timeline_actions/use_add_to_case_actions'; import { useKibana } from '../../../common/lib/kibana'; @@ -76,7 +75,6 @@ export const TakeActionDropdown = React.memo( onOsqueryClick, scopeId, }: TakeActionDropdownProps) => { - const tGridEnabled = useIsExperimentalFeatureEnabled('tGridEnabled'); const { loading: endpointPrivilegesLoading, canWriteEventFilters } = useUserPrivileges().endpointPrivileges; @@ -267,7 +265,7 @@ export const TakeActionDropdown = React.memo( const items: AlertTableContextMenuItem[] = useMemo( () => [ - ...(tGridEnabled ? addToCaseActionItems : []), + ...addToCaseActionItems, ...alertsActionItems, ...hostIsolationActionItems, ...endpointResponseActionsConsoleItems, @@ -275,7 +273,6 @@ export const TakeActionDropdown = React.memo( ...investigateInTimelineActionItems, ], [ - tGridEnabled, addToCaseActionItems, alertsActionItems, hostIsolationActionItems, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/data_table/control_column_cell_render.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/data_table/control_column_cell_render.tsx index b763d0ce9951a9..48b8eaa4fc74fd 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/data_table/control_column_cell_render.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/unified_components/data_table/control_column_cell_render.tsx @@ -14,7 +14,6 @@ import type { TimelineModel } from '../../../../store/model'; import type { ActionProps } from '../../../../../../common/types'; const noOp = () => {}; -const emptyLoadingEventIds: string[] = []; export interface UnifiedActionProps extends ActionProps { onToggleShowNotes: (eventId?: string) => void; events: TimelineItem[]; @@ -31,24 +30,20 @@ export const ControlColumnCellRender = memo(function RowCellRender(props: Unifie return ( ); }); diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 45f91ad82c4acd..60f777a8f6b8c7 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -36699,7 +36699,6 @@ "xpack.securitySolution.hostsTable.osLastSeenToolTip": "Dernier système d'exploitation observé", "xpack.securitySolution.hostsTable.osTitle": "Système d'exploitation", "xpack.securitySolution.hostsTable.versionTitle": "Version", - "xpack.securitySolution.hoverActions.checkboxForRowAriaLabel": "Case {checked, select, false {non cochée} true {cochée}} pour l'alerte ou l'événement de la ligne {ariaRowindex}, avec les colonnes {columnValues}", "xpack.securitySolution.hoverActions.investigateInResolverTooltip": "Analyser l'événement", "xpack.securitySolution.hoverActions.pinEventForRowAriaLabel": "{isEventPinned, select, false {Épingler} true {Désépingler}} l'événement de la ligne {ariaRowindex} {isEventPinned, select, false{dans} true {de}} la chronologie, avec les colonnes {columnValues}", "xpack.securitySolution.hoverActions.viewDetailsAriaLabel": "Afficher les détails", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 8074fc8815f89c..94d4a9eb749333 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -36668,7 +36668,6 @@ "xpack.securitySolution.hostsTable.osLastSeenToolTip": "前回観察されたオペレーティングシステム", "xpack.securitySolution.hostsTable.osTitle": "オペレーティングシステム", "xpack.securitySolution.hostsTable.versionTitle": "バージョン", - "xpack.securitySolution.hoverActions.checkboxForRowAriaLabel": "行 {ariaRowindex}、列 {columnValues} のアラートまたはイベントのチェックボックスを{checked, select, false {オフ} true {オン}}", "xpack.securitySolution.hoverActions.investigateInResolverTooltip": "イベントを分析します", "xpack.securitySolution.hoverActions.pinEventForRowAriaLabel": "行 {ariaRowindex}、列 {columnValues} のイベントを{isEventPinned, select, false {固定} true {固定解除}}", "xpack.securitySolution.hoverActions.viewDetailsAriaLabel": "詳細を表示", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 0d52e86e5b9a30..9182411a5b93dc 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -36712,7 +36712,6 @@ "xpack.securitySolution.hostsTable.osLastSeenToolTip": "上次观察的操作系统", "xpack.securitySolution.hostsTable.osTitle": "操作系统", "xpack.securitySolution.hostsTable.versionTitle": "版本", - "xpack.securitySolution.hoverActions.checkboxForRowAriaLabel": "告警或事件第 {ariaRowindex} 行的{checked, select, false {已取消选中} true {已选中}}复选框,其中列为 {columnValues}", "xpack.securitySolution.hoverActions.investigateInResolverTooltip": "分析事件", "xpack.securitySolution.hoverActions.pinEventForRowAriaLabel": "将第 {ariaRowindex} 行的事件{isEventPinned, select, false {固定} true {取消固定}}到时间线,其中列为 {columnValues}", "xpack.securitySolution.hoverActions.viewDetailsAriaLabel": "查看详情",