From 7f8e0a1d1cd4b30c437bb089a1275a6b0a1fb8f0 Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio Date: Wed, 19 Jun 2024 15:53:47 +0200 Subject: [PATCH] [DURACOM-282] fix issue with submission edit page when providing a not existing workspaceitem --- .../submission/submission-parent-breadcrumb.service.ts | 9 ++++++++- src/app/core/submission/submission-rest.service.ts | 4 +++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/app/core/submission/submission-parent-breadcrumb.service.ts b/src/app/core/submission/submission-parent-breadcrumb.service.ts index 4241d00192..2f9051b858 100644 --- a/src/app/core/submission/submission-parent-breadcrumb.service.ts +++ b/src/app/core/submission/submission-parent-breadcrumb.service.ts @@ -8,7 +8,10 @@ import { import { getDSORoute } from '../../app-routing-paths'; import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model'; -import { hasValue } from '../../shared/empty.util'; +import { + hasValue, + isEmpty, +} from '../../shared/empty.util'; import { SubmissionService } from '../../submission/submission.service'; import { BreadcrumbsProviderService } from '../breadcrumbs/breadcrumbsProviderService'; import { DSOBreadcrumbsService } from '../breadcrumbs/dso-breadcrumbs.service'; @@ -46,6 +49,10 @@ export class SubmissionParentBreadcrumbsService implements BreadcrumbsProviderSe * @param submissionObject The {@link SubmissionObject} for which the parent breadcrumb structure needs to be created */ getBreadcrumbs(submissionObject: SubmissionObject): Observable { + if (isEmpty(submissionObject)) { + return observableOf([]); + } + return combineLatest([ (submissionObject.collection as Observable>).pipe( getFirstCompletedRemoteData(), diff --git a/src/app/core/submission/submission-rest.service.ts b/src/app/core/submission/submission-rest.service.ts index 7e62058ba6..b1f4ad9e1b 100644 --- a/src/app/core/submission/submission-rest.service.ts +++ b/src/app/core/submission/submission-rest.service.ts @@ -13,6 +13,7 @@ import { isNotEmpty, } from '../../shared/empty.util'; import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; +import { ErrorResponse } from '../cache/response.models'; import { RemoteData } from '../data/remote-data'; import { DeleteRequest, @@ -23,6 +24,7 @@ import { SubmissionRequest, } from '../data/request.models'; import { RequestService } from '../data/request.service'; +import { RequestError } from '../data/request-error.model'; import { RestRequest } from '../data/rest-request.model'; import { HttpOptions } from '../dspace-rest/dspace-rest.service'; import { HALEndpointService } from '../shared/hal-endpoint.service'; @@ -57,7 +59,7 @@ export class SubmissionRestService { getFirstCompletedRemoteData(), map((response: RemoteData) => { if (response.hasFailed) { - throw new Error(response.errorMessage); + throw new ErrorResponse({ statusText: response.errorMessage, statusCode: response.statusCode } as RequestError); } else { return hasValue(response.payload) ? response.payload.dataDefinition : response.payload; }