diff --git a/deploy/datasets/query.js b/deploy/datasets/query.js index e96e1871378fa6f791e6738f3ce8fd2e2602040d..1516c3e4559d579e2360e9c9b7374af30c8eb093 100644 --- a/deploy/datasets/query.js +++ b/deploy/datasets/query.js @@ -306,10 +306,7 @@ const fetchSpatialDataFromKg = async ({ templateName, queryGeometry, queryArg, u return { name, templateSpace: templateName, - dataset: { - name: dataset[0].name, - externalLink: 'https://kg.humanbrainproject.eu/instances/Dataset/' + dataset[0].identifier, - }, + dataset: dataset.map(ds => ds = {name: ds.name, externalLink: 'https://kg.humanbrainproject.eu/instances/Dataset/' + ds.identifier}), geometry: { type: 'point', space: 'real', diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts index 3fddf7d718603cfc1e36176f5f01fe313f87c4ef..a1175088db8d56f6f0a879ef5c2e40b439db917e 100644 --- a/src/atlasViewer/atlasViewer.component.ts +++ b/src/atlasViewer/atlasViewer.component.ts @@ -79,7 +79,7 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { public onhoverSegments$: Observable<string[]> public onhoverSegmentsForFixed$: Observable<string[]> public onhoverLandmarksForFixed$: Observable<any> - public onhoverLandmark$ : Observable<{landmarkName: string, externalUrl: string} | null> + public onhoverLandmark$ : Observable<{landmarkName: string, datasets: any} | null> private subscriptions: Subscription[] = [] /* handlers for nglayer */ @@ -188,8 +188,8 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { return `Landmark index could not be parsed as a number: ${landmark}` return { landmarkName: spatialDatas[idx].name, - externalUrl: (spatialDatas[idx].dataset - && spatialDatas[idx].dataset.externalLink)? spatialDatas[idx].dataset.externalLink : null + datasets: (spatialDatas[idx].dataset + && spatialDatas[idx].dataset.length)? spatialDatas[idx].dataset : null } }) ) @@ -484,9 +484,9 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit { } } - openLandmarkUrl(landmark) { + openLandmarkUrl(dataset) { this.rClContextualMenu.hide() - window.open(landmark.externalUrl, "_blank"); + window.open(dataset.externalLink, "_blank") } @HostBinding('attr.version') diff --git a/src/atlasViewer/atlasViewer.template.html b/src/atlasViewer/atlasViewer.template.html index 6b01f61f52047ee2f5272a5ce614906664954752..5439939d880b08f5c4d053879c6935b85cb9b155 100644 --- a/src/atlasViewer/atlasViewer.template.html +++ b/src/atlasViewer/atlasViewer.template.html @@ -151,20 +151,25 @@ <div body> <div - *ngIf="(onhoverSegmentsForFixed$ | async)?.length > 0 || (selectedRegions$ | async)?.length > 0 || (onhoverLandmarksForFixed$ | async)?.externalUrl.length > 0" + *ngIf="(onhoverSegmentsForFixed$ | async)?.length > 0 || (selectedRegions$ | async)?.length > 0" class="p-2"> Search for data relating to: </div> <div *ngIf="(onhoverLandmarksForFixed$ | async) as onhoverLandmarksForFixed"> - <div - *ngIf="onhoverLandmarksForFixed && onhoverLandmarksForFixed.externalUrl && onhoverLandmarksForFixed.externalUrl.length > 0" - class="ws-no-wrap text-left pe-all btn btn-sm btn-secondary btn-block mt-0" - data-toggle="tooltip" - data-placement="top" - (click)="openLandmarkUrl(onhoverLandmarksForFixed)" - [title]="onhoverLandmarksForFixed.landmarkName"> - Explore dataset of {{ onhoverLandmarksForFixed.landmarkName }} <i class="fas fa-external-link-alt"></i> + <div *ngIf="onhoverLandmarksForFixed && onhoverLandmarksForFixed.datasets && onhoverLandmarksForFixed.datasets.length > 0"> + <div class="p-2"> + Explore datasets for {{onhoverLandmarksForFixed.landmarkName}} + </div> + <div + *ngFor="let dataset of onhoverLandmarksForFixed.datasets" + class="ws-no-wrap text-left pe-all btn btn-sm btn-secondary btn-block mt-0" + data-toggle="tooltip" + data-placement="top" + (click)="openLandmarkUrl(dataset)" + [title]="dataset.name"> + {{ dataset.name }} <i class="fas fa-external-link-alt"></i> + </div> </div> </div>