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