From 5faa81bfee166317bffc7b94f522de83c6fb3f14 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <p.gawron@atcomp.pl> Date: Wed, 11 Dec 2024 08:44:57 +0100 Subject: [PATCH] export to image should include overlays --- CHANGELOG | 5 +++++ .../ExportCompound/ExportCompound.component.tsx | 3 +++ .../ExportCompound/utils/getGraphicsDownloadUrl.test.ts | 6 +++++- .../ExportCompound/utils/getGraphicsDownloadUrl.ts | 6 +++++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 37a544e7..25728623 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +minerva-front (18.0.7) stable; urgency=medium + * Bug fix: export to image did not include overlays (#326) + +-- Piotr Gawron <piotr.gawron@uni.lu> Wed, 11 Dec 2024 13:00:00 +0200 + minerva-front (18.0.6) stable; urgency=medium * No changes in frontend diff --git a/src/components/Map/Drawer/ExportDrawer/ExportCompound/ExportCompound.component.tsx b/src/components/Map/Drawer/ExportDrawer/ExportCompound/ExportCompound.component.tsx index f5803c10..e33a99ed 100644 --- a/src/components/Map/Drawer/ExportDrawer/ExportCompound/ExportCompound.component.tsx +++ b/src/components/Map/Drawer/ExportDrawer/ExportCompound/ExportCompound.component.tsx @@ -5,6 +5,7 @@ import { useAppDispatch } from '@/redux/hooks/useAppDispatch'; import { useAppSelector } from '@/redux/hooks/useAppSelector'; import { modelsDataSelector, modelsIdsSelector } from '@/redux/models/models.selectors'; import { ReactNode, useCallback, useMemo, useState } from 'react'; +import { activeOverlaysIdSelector } from '@/redux/overlayBioEntity/overlayBioEntity.selector'; import { CheckboxItem } from '../CheckboxFilter/CheckboxFilter.types'; import { Annotations } from './Annotations'; import { DownloadElements } from './DownloadElements/DownloadElements'; @@ -33,6 +34,7 @@ export const Export = ({ children }: ExportProps): JSX.Element => { const modelIds = useAppSelector(modelsIdsSelector); const currentModels = useAppSelector(modelsDataSelector); const currentBackground = useAppSelector(currentBackgroundSelector); + const overlays = useAppSelector(activeOverlaysIdSelector); const [annotations, setAnnotations] = useState<CheckboxItem[]>([]); const [includedCompartmentPathways, setIncludedCompartmentPathways] = useState<CheckboxItem[]>( [], @@ -76,6 +78,7 @@ export const Export = ({ children }: ExportProps): JSX.Element => { modelId: models?.[FIRST_ARRAY_ELEMENT]?.id, handler: imageFormats?.[FIRST_ARRAY_ELEMENT]?.id, zoom: getModelExportZoom(imageSize.width, model), + overlayIds: overlays.map(overlayId => `${overlayId}`), }); if (url) { diff --git a/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.test.ts b/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.test.ts index 2e6c4db9..e621890a 100644 --- a/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.test.ts +++ b/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.test.ts @@ -3,10 +3,11 @@ import { GetGraphicsDownloadUrlProps, getGraphicsDownloadUrl } from './getGraphi describe('getGraphicsDownloadUrl - util', () => { const cases: [GetGraphicsDownloadUrlProps, string | undefined][] = [ - [{}, undefined], + [{ overlayIds: [] }, undefined], [ { backgroundId: 50, + overlayIds: [], }, undefined, ], @@ -14,6 +15,7 @@ describe('getGraphicsDownloadUrl - util', () => { { backgroundId: 50, modelId: '30', + overlayIds: [], }, undefined, ], @@ -22,6 +24,7 @@ describe('getGraphicsDownloadUrl - util', () => { backgroundId: 50, modelId: '30', handler: 'any.handler.image', + overlayIds: [], }, undefined, ], @@ -31,6 +34,7 @@ describe('getGraphicsDownloadUrl - util', () => { modelId: '30', handler: 'any.handler.image', zoom: 7, + overlayIds: [], }, `${BASE_API_URL}/projects/${PROJECT_ID}/models/30:downloadImage?backgroundOverlayId=50&handlerClass=any.handler.image&zoomLevel=7`, ], diff --git a/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.ts b/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.ts index c4020e98..169265ea 100644 --- a/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.ts +++ b/src/components/Map/Drawer/ExportDrawer/ExportCompound/utils/getGraphicsDownloadUrl.ts @@ -5,6 +5,7 @@ export interface GetGraphicsDownloadUrlProps { modelId?: string; handler?: string; zoom?: number; + overlayIds: string[]; } export const getGraphicsDownloadUrl = ({ @@ -12,6 +13,7 @@ export const getGraphicsDownloadUrl = ({ modelId, handler, zoom, + overlayIds, }: GetGraphicsDownloadUrlProps): string | undefined => { const isAllElementsTruthy = [backgroundId, modelId, handler, zoom].reduce( (a, b) => Boolean(a) && Boolean(b), @@ -22,5 +24,7 @@ export const getGraphicsDownloadUrl = ({ return undefined; } - return `${BASE_API_URL}/projects/${PROJECT_ID}/models/${modelId}:downloadImage?backgroundOverlayId=${backgroundId}&handlerClass=${handler}&zoomLevel=${zoom}`; + const overlays = overlayIds.join(','); + + return `${BASE_API_URL}/projects/${PROJECT_ID}/models/${modelId}:downloadImage?backgroundOverlayId=${backgroundId}&handlerClass=${handler}&zoomLevel=${zoom}&overlayIds=${overlays}`; }; -- GitLab