From 6df1ee64f27a844aa4a80118d8fb6000fb298406 Mon Sep 17 00:00:00 2001 From: Giuseppe Digilio Date: Mon, 2 Aug 2021 09:18:21 +0200 Subject: [PATCH 01/10] [DSC-184] Fix issue with mydpsace page that hangs forever on error response --- src/app/my-dspace-page/my-dspace-page.component.html | 4 ++-- src/app/my-dspace-page/my-dspace-page.component.ts | 11 +++++------ src/app/shared/error/error.component.html | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/app/my-dspace-page/my-dspace-page.component.html b/src/app/my-dspace-page/my-dspace-page.component.html index 4aadb16255..5a15abcc08 100644 --- a/src/app/my-dspace-page/my-dspace-page.component.html +++ b/src/app/my-dspace-page/my-dspace-page.component.html @@ -4,7 +4,7 @@ = new InjectionToken('searchConfigurationService'); @@ -111,8 +111,7 @@ export class MyDSpacePageComponent implements OnInit { constructor(private service: SearchService, private sidebarService: SidebarService, private windowService: HostWindowService, - @Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: MyDSpaceConfigurationService, - private routeService: RouteService) { + @Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: MyDSpaceConfigurationService) { this.isXsOrSm$ = this.windowService.isXsOrSm(); this.service.setServiceOptions(MyDSpaceResponseParsingService, MyDSpaceRequest); } @@ -134,8 +133,8 @@ export class MyDSpacePageComponent implements OnInit { this.searchOptions$ = this.searchConfigService.paginatedSearchOptions; this.sub = this.searchOptions$.pipe( tap(() => this.resultsRD$.next(null)), - switchMap((options: PaginatedSearchOptions) => this.service.search(options).pipe(getFirstSucceededRemoteData()))) - .subscribe((results) => { + switchMap((options: PaginatedSearchOptions) => this.service.search(options).pipe(getFirstCompletedRemoteData()))) + .subscribe((results: RemoteData>) => { this.resultsRD$.next(results); }); diff --git a/src/app/shared/error/error.component.html b/src/app/shared/error/error.component.html index d41760e258..dd75cb4b1b 100644 --- a/src/app/shared/error/error.component.html +++ b/src/app/shared/error/error.component.html @@ -1,3 +1,3 @@ -
- -
+ + {{ message }} + From 7a567a47b9ff7851c645b69b4a0d6627aa80fb5f Mon Sep 17 00:00:00 2001 From: Davide Negretti Date: Fri, 26 Nov 2021 11:20:35 +0100 Subject: [PATCH 02/10] [CST-4882] Show error message if the search query fails - Handle error 422 (invalid query) separately --- .../my-dspace-results/my-dspace-results.component.html | 2 +- .../my-dspace-results/my-dspace-results.component.ts | 8 ++++++++ src/app/shared/error/error.component.html | 5 +++-- src/app/shared/error/error.component.spec.ts | 2 +- src/app/shared/error/error.component.ts | 7 +++++++ src/assets/i18n/en.json5 | 2 ++ 6 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.html b/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.html index 2710285f0d..ad06f97c88 100644 --- a/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.html +++ b/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.html @@ -10,5 +10,5 @@ - +

{{'mydspace.results.no-results' | translate}}

diff --git a/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.ts b/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.ts index 32b6d9c9f7..96395adea2 100644 --- a/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.ts +++ b/src/app/my-dspace-page/my-dspace-results/my-dspace-results.component.ts @@ -58,4 +58,12 @@ export class MyDSpaceResultsComponent { isLoading() { return !this.searchResults || isEmpty(this.searchResults) || this.searchResults.isLoading; } + + showError(searchResults: RemoteData>>): boolean { + return searchResults?.hasFailed && (!searchResults?.errorMessage || searchResults?.statusCode !== 400); + } + + errorMessageLabel(searchResults: RemoteData>>): string { + return (searchResults?.statusCode === 422) ? 'error.invalid-search-query' : 'error.search-results'; + } } diff --git a/src/app/shared/error/error.component.html b/src/app/shared/error/error.component.html index dd75cb4b1b..157c47f2cd 100644 --- a/src/app/shared/error/error.component.html +++ b/src/app/shared/error/error.component.html @@ -1,3 +1,4 @@ - - {{ message }} + + + diff --git a/src/app/shared/error/error.component.spec.ts b/src/app/shared/error/error.component.spec.ts index d3e3e80c07..f8483ac7aa 100644 --- a/src/app/shared/error/error.component.spec.ts +++ b/src/app/shared/error/error.component.spec.ts @@ -36,7 +36,7 @@ describe('ErrorComponent (inline template)', () => { comp = fixture.componentInstance; // ErrorComponent test instance // query for the message