From e351acb9ceb854828d64b7474cae2fbddae8ad27 Mon Sep 17 00:00:00 2001 From: BocognanoSarah Date: Thu, 4 Apr 2024 15:41:08 +0200 Subject: [PATCH] [frontend] Fix "Select all" not available for relationship creation (#issue/6407) --- ...StixCoreRelationshipCreationFromEntity.tsx | 24 +++++++++++-------- ...estedRefRelationshipCreationFromEntity.jsx | 17 ++++++++----- ...RefRelationshipCreationFromEntityLines.jsx | 1 + 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_core_relationships/StixCoreRelationshipCreationFromEntity.tsx b/opencti-platform/opencti-front/src/private/components/common/stix_core_relationships/StixCoreRelationshipCreationFromEntity.tsx index c4d803d5b53a..838750bc3381 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_core_relationships/StixCoreRelationshipCreationFromEntity.tsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_core_relationships/StixCoreRelationshipCreationFromEntity.tsx @@ -37,7 +37,7 @@ import StixCoreRelationshipCreationFromEntityStixCoreObjectsLines, { import useFiltersState from '../../../../utils/filters/useFiltersState'; import type { Theme } from '../../../../components/Theme'; import { ModuleHelper } from '../../../../utils/platformModulesHelper'; -import { StixCoreRelationshipCreationFromEntityStixCoreObjectsLine_node$data } from './__generated__/StixCoreRelationshipCreationFromEntityStixCoreObjectsLine_node.graphql'; +import useEntityToggle from '../../../../utils/hooks/useEntityToggle'; const useStyles = makeStyles((theme) => ({ drawerPaper: { @@ -311,7 +311,6 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent>({}); useEffect(() => { if (!R.equals(targetEntitiesProps, targetEntities) && targetEntitiesProps.length > targetEntities.length) { setTargetEntities(targetEntitiesProps); @@ -461,10 +460,16 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent { + const { + onToggleEntity, + selectedElements, + deSelectedElements, + } = useEntityToggle(`${entityId}_stixCoreRelationshipCreationFromEntity`); + + const onInstanceToggleEntity = (entity: TargetEntity) => { + onToggleEntity(entity); if (entity.id in (selectedElements || {})) { const newSelectedElements = R.omit([entity.id], selectedElements); - setSelectedElements(newSelectedElements); setTargetEntities(R.values(newSelectedElements)); } else { const newSelectedElements = R.assoc( @@ -472,7 +477,6 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent )} /> @@ -695,9 +699,9 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent { const relationshipTypes = R.uniq(R.filter( (n) => R.isNil(allowedRelationshipTypes) - || allowedRelationshipTypes.length === 0 - || allowedRelationshipTypes.includes('stix-core-relationship') - || allowedRelationshipTypes.includes(n), + || allowedRelationshipTypes.length === 0 + || allowedRelationshipTypes.includes('stix-core-relationship') + || allowedRelationshipTypes.includes(n), resolveRelationsTypes( fromEntities[0].entity_type, toEntities[0].entity_type, diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntity.jsx b/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntity.jsx index daf50f556a14..f68c947c09e4 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntity.jsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntity.jsx @@ -35,6 +35,7 @@ import { fieldSpacingContainerStyle } from '../../../../utils/field'; import ListLines from '../../../../components/list_lines/ListLines'; import useFiltersState from '../../../../utils/filters/useFiltersState'; import { emptyFilterGroup, removeIdFromFilterGroupObject } from '../../../../utils/filters/filtersUtils'; +import useEntityToggle from '../../../../utils/hooks/useEntityToggle'; const useStyles = makeStyles((theme) => ({ drawerPaper: { @@ -333,7 +334,6 @@ const StixNestedRefRelationshipCreationFromEntity = ({ const [openCreateObservable, setOpenCreateObservable] = useState(false); const [step, setStep] = useState(0); const [targetEntity, setTargetEntity] = useState([]); - const [selectedElements, setSelectedElements] = useState({}); const [sortBy, setSortBy] = useState('_score'); const [orderAsc, setOrderAsc] = useState(false); const [numberOfElements, setNumberOfElements] = useState({ @@ -466,10 +466,16 @@ const StixNestedRefRelationshipCreationFromEntity = ({ setTargetEntity(stixDomainObject); }; - const onToggleEntity = (entity) => { + const { + onToggleEntity, + selectedElements, + deSelectedElements, + } = useEntityToggle(`${entityId}_stixNestedRefRelationshipCreationFromEntity`); + + const onInstanceToggleEntity = (entity) => { + onToggleEntity(entity); if (entity.id in (selectedElements || {})) { const newSelectedElements = R.omit([entity.id], selectedElements); - setSelectedElements(newSelectedElements); setTargetEntity(R.values(newSelectedElements)); } else { const newSelectedElements = R.assoc( @@ -477,7 +483,6 @@ const StixNestedRefRelationshipCreationFromEntity = ({ entity, selectedElements || {}, ); - setSelectedElements(newSelectedElements); setTargetEntity(R.values(newSelectedElements)); } }; @@ -576,10 +581,10 @@ const StixNestedRefRelationshipCreationFromEntity = ({ dataColumns={dataColumns} initialLoading={false} setNumberOfElements={setNumberOfElements} - onToggleEntity={onToggleEntity} + onToggleEntity={onInstanceToggleEntity} containerRef={containerRef} selectedElements={selectedElements} - deSelectedElements={{}} + deSelectedElements={deSelectedElements} selectAll={false} /> ); diff --git a/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntityLines.jsx b/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntityLines.jsx index c6dd0861387b..8175bc76e6e8 100644 --- a/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntityLines.jsx +++ b/opencti-platform/opencti-front/src/private/components/common/stix_nested_ref_relationships/StixNestedRefRelationshipCreationFromEntityLines.jsx @@ -153,6 +153,7 @@ const StixNestedRefRelationshipCreationFromEntityLines = createPaginationContain ) @connection(key: "Pagination_stixCoreObjects") { edges { node { + id ...StixNestedRefRelationshipCreationFromEntityLine_node } }