From 5dd80c71a196a8c0482ff7083d0c61f3b46725ee Mon Sep 17 00:00:00 2001
From: Alicia de Dios Fuente <Alicia.DeDiosFuente@unige.ch>
Date: Mon, 4 May 2020 12:59:55 +0200
Subject: [PATCH] fix: return archival storage principal node when requesting
 show status history in preservation job report

---
 src/app/features/preservation/aip/helpers/aip.helper.ts   | 8 +++++++-
 .../dialogs/job-report-detail/job-report-detail.dialog.ts | 2 +-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/app/features/preservation/aip/helpers/aip.helper.ts b/src/app/features/preservation/aip/helpers/aip.helper.ts
index 2d496386f..1b8a6edb7 100644
--- a/src/app/features/preservation/aip/helpers/aip.helper.ts
+++ b/src/app/features/preservation/aip/helpers/aip.helper.ts
@@ -3,7 +3,7 @@ import {Store} from "@ngxs/store";
 import {AipTabEnum} from "@preservation/aip/enums/aip-tab.enum";
 import {
   AccessResourceApiEnum,
-  ArchivalStorageResourceApiEnum,
+  ArchivalStorageResourceApiEnum, BaseResourceApiEnum,
 } from "@shared/enums/api.enum";
 import {
   AppRoutesEnum,
@@ -11,6 +11,7 @@ import {
 } from "@shared/enums/routes.enum";
 import {
   isNullOrUndefined,
+  isNumber,
   StringUtil,
 } from "solidify-frontend";
 
@@ -62,8 +63,13 @@ export class AipHelper {
         storagionNumber = store.selectSnapshot(state => state.router.state.root.children[0].children[0].children[0].params[PreservationPlanningRoutesEnum.storagionNumberWithoutPrefixParam]);
       }
     }
+
     const storagion = ArchivalStorageResourceApiEnum.aipStorages.find(aip => aip.index === +storagionNumber);
     if (isNullOrUndefined(storagion)) {
+      if (String(storagionNumber) === PreservationPlanningRoutesEnum.job) {
+        //in case the request comes from preservation job to show the history status, return the principal storagion url
+         return ArchivalStorageResourceApiEnum.aip;
+      }
       throw new Error(`The storagion index '${storagionNumber}' is not find in setting`);
     }
     return storagion.url;
diff --git a/src/app/features/preservation/job/components/dialogs/job-report-detail/job-report-detail.dialog.ts b/src/app/features/preservation/job/components/dialogs/job-report-detail/job-report-detail.dialog.ts
index 5566647d7..d61b15ecb 100644
--- a/src/app/features/preservation/job/components/dialogs/job-report-detail/job-report-detail.dialog.ts
+++ b/src/app/features/preservation/job/components/dialogs/job-report-detail/job-report-detail.dialog.ts
@@ -70,7 +70,7 @@ export class JobReportDetailDialog extends SharedAbstractContainer implements On
       logo: "history",
       callback: (jobExecutionReportLine: JobExecutionReportLine) => this.historyDataFile(jobExecutionReportLine),
       placeholder: TRANSLATE("crud.list.action.history"),
-      displayOnCondition: (jobExecutionReportLine: JobExecutionReportLine) => jobExecutionReportLine.status === JobReportAipStatusEnum.ERROR,
+      displayOnCondition: (jobExecutionReportLine: JobExecutionReportLine) => jobExecutionReportLine.status !== JobReportAipStatusEnum.ERROR,
     },
   ];
 
-- 
GitLab