From aa41b51d6fa7f5abe7f46e1079c17d0c5840df3d Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Wed, 11 Nov 2020 10:50:38 +0100 Subject: [PATCH] feat: added explore in KG if doi is missing --- .../sideNavView/sDsSideNavView.template.html | 18 ++++++++++++++---- .../singleDataset/singleDataset.base.ts | 8 ++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/ui/databrowserModule/singleDataset/sideNavView/sDsSideNavView.template.html b/src/ui/databrowserModule/singleDataset/sideNavView/sDsSideNavView.template.html index fab50a783..5e0179a2f 100644 --- a/src/ui/databrowserModule/singleDataset/sideNavView/sDsSideNavView.template.html +++ b/src/ui/databrowserModule/singleDataset/sideNavView/sDsSideNavView.template.html @@ -29,13 +29,23 @@ <a *ngFor="let kgRef of kgReference" [href]="kgRef | doiParserPipe" class="color-inherit" + mat-icon-button + [matTooltip]="EXPLORE_DATASET_IN_KG_ARIA_LABEL" target="_blank"> - <button mat-icon-button - [matTooltip]="EXPLORE_DATASET_IN_KG_ARIA_LABEL"> - <i class="fas fa-external-link-alt"></i> - </button> + <i class="fas fa-external-link-alt"></i> </a> + <!-- in case no doi is available, directly link to KG --> + <ng-template [ngIf]="kgReference.length === 0"> + <a [href]="directLinkToKg" + class="color-inherit" + mat-icon-button + [matTooltip]="EXPLORE_DATASET_IN_KG_ARIA_LABEL" + target="_blank"> + <i class="fas fa-external-link-alt"></i> + </a> + </ng-template> + <!-- fav btn --> <ng-container *ngTemplateOutlet="favDatasetBtn"> </ng-container> diff --git a/src/ui/databrowserModule/singleDataset/singleDataset.base.ts b/src/ui/databrowserModule/singleDataset/singleDataset.base.ts index 9111a1264..93367c8ae 100644 --- a/src/ui/databrowserModule/singleDataset/singleDataset.base.ts +++ b/src/ui/databrowserModule/singleDataset/singleDataset.base.ts @@ -13,6 +13,12 @@ import { ARIA_LABELS } from 'common/constants' import { switchMap, distinctUntilChanged, filter } from "rxjs/operators"; import { IContributor } from "../contributor"; +const getDirectLinkToKg = (dataset: { fullId: string, id: string }) => { + const { id } = dataset + if (id) return `https://kg.ebrains.eu/search/instances/Dataset/${encodeURIComponent(id)}` + return null +} + export { DatabrowserService, KgSingleDatasetService, @@ -94,6 +100,7 @@ export class SingleDatasetBase implements OnChanges, OnDestroy { * sic! */ public kgReference: string[] = [] + public directLinkToKg: string public files: IFile[] = [] private methods: string[] = [] @@ -146,6 +153,7 @@ export class SingleDatasetBase implements OnChanges, OnDestroy { this.fullId = fullId this.kgReference = kgReference + this.directLinkToKg = getDirectLinkToKg(dataset) this.dlFromKgHref = this.singleDatasetService.getDownloadZipFromKgHref({ kgSchema, kgId }) -- GitLab