diff --git a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.html b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.html index 29c99732c3..6e88e53ad0 100644 --- a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.html +++ b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.html @@ -9,7 +9,6 @@ diff --git a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts index 4f3c54b642..94ce4b91ed 100644 --- a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts +++ b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.spec.ts @@ -64,7 +64,7 @@ describe('SubmissionImportExternalCollectionComponent test suite', () => { compAsAny = null; }); - it('should emit from selectedEvent on selectObject', () => { + it('should emit from selectedEvent on selectObject and set loading to true', () => { spyOn(comp.selectedEvent, 'emit').and.callThrough(); const entry = { @@ -79,6 +79,7 @@ describe('SubmissionImportExternalCollectionComponent test suite', () => { comp.selectObject(entry); expect(comp.selectedEvent.emit).toHaveBeenCalledWith(entry); + expect(comp.loading).toBeTrue(); }); it('should dismiss modal on closeCollectionModal', () => { diff --git a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.ts b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.ts index 5fb4e5d406..22430196d4 100644 --- a/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.ts +++ b/src/app/submission/import-external/import-external-collection/submission-import-external-collection.component.ts @@ -38,6 +38,7 @@ export class SubmissionImportExternalCollectionComponent { * This method emits the selected Collection from the 'selectedEvent' variable. */ public selectObject(object: CollectionListEntry): void { + this.loading = true; this.selectedEvent.emit(object); } diff --git a/src/app/submission/import-external/submission-import-external.component.ts b/src/app/submission/import-external/submission-import-external.component.ts index f0a9dca508..8c2c5eca9e 100644 --- a/src/app/submission/import-external/submission-import-external.component.ts +++ b/src/app/submission/import-external/submission-import-external.component.ts @@ -15,7 +15,9 @@ import { Context } from '../../core/shared/context.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { RouteService } from '../../core/services/route.service'; import { createSuccessfulRemoteDataObject } from '../../shared/remote-data.utils'; -import { SubmissionImportExternalPreviewComponent } from './import-external-preview/submission-import-external-preview.component'; +import { + SubmissionImportExternalPreviewComponent +} from './import-external-preview/submission-import-external-preview.component'; import { fadeIn } from '../../shared/animations/fade'; import { PageInfo } from '../../core/shared/page-info.model'; import { hasValue, isNotEmpty } from '../../shared/empty.util'; @@ -186,12 +188,17 @@ export class SubmissionImportExternalComponent implements OnInit, OnDestroy { this.retrieveExternalSourcesSub = this.reload$.pipe( filter((sourceQueryObject: ExternalSourceData) => isNotEmpty(sourceQueryObject.sourceId) && isNotEmpty(sourceQueryObject.query)), switchMap((sourceQueryObject: ExternalSourceData) => { + const currentEntry = this.entriesRD$.getValue(); + let useCache = true; + if (hasValue(currentEntry) && currentEntry.isError) { + useCache = false; + } const query = sourceQueryObject.query; this.routeData = sourceQueryObject; return this.searchConfigService.paginatedSearchOptions.pipe( tap(() => this.isLoading$.next(true)), filter((searchOptions) => searchOptions.query === query), - mergeMap((searchOptions) => this.externalService.getExternalSourceEntries(this.routeData.sourceId, searchOptions).pipe( + mergeMap((searchOptions) => this.externalService.getExternalSourceEntries(this.routeData.sourceId, searchOptions, useCache).pipe( getFinishedRemoteData(), )) );