diff --git a/src/app/shared/mydspace-actions/mydspace-actions.ts b/src/app/shared/mydspace-actions/mydspace-actions.ts index 5100d8122e..1a5ebbcc8c 100644 --- a/src/app/shared/mydspace-actions/mydspace-actions.ts +++ b/src/app/shared/mydspace-actions/mydspace-actions.ts @@ -101,13 +101,17 @@ export abstract class MyDSpaceActionsComponent { return false; }; // This assures that the search cache is empty before reloading mydspace. // See https://github.com/DSpace/dspace-angular/pull/468 + this.invalidateCacheForCurrentSearchUrl(); + } + + invalidateCacheForCurrentSearchUrl(): void { + const url = decodeURIComponent(this.router.url); this.searchService.getEndpoint().pipe( take(1), tap((cachedHref: string) => this.requestService.removeByHrefSubstring(cachedHref)), diff --git a/src/app/shared/mydspace-actions/mydspace-reloadable-actions.spec.ts b/src/app/shared/mydspace-actions/mydspace-reloadable-actions.spec.ts index 1d0d231503..b7a0a20219 100644 --- a/src/app/shared/mydspace-actions/mydspace-reloadable-actions.spec.ts +++ b/src/app/shared/mydspace-actions/mydspace-reloadable-actions.spec.ts @@ -219,6 +219,7 @@ describe('MyDSpaceReloadableActionsComponent', () => { spyOn(component, 'reloadObjectExecution').and.callThrough(); spyOn(component, 'convertReloadedObject').and.callThrough(); spyOn(component.processCompleted, 'emit').and.callThrough(); + spyOn(component, 'invalidateCacheForCurrentSearchUrl').and.callThrough(); (component as any).objectDataService = mockDataService; }); @@ -239,10 +240,11 @@ describe('MyDSpaceReloadableActionsComponent', () => { }); }); - it('should emit the reloaded object in case of success', (done) => { + it('should emit the reloaded object and invalidate cache in case of success', (done) => { component.startActionExecution().subscribe( (result) => { expect(component.processCompleted.emit).toHaveBeenCalledWith({ result: true, reloadedObject: result as any }); + expect(component.invalidateCacheForCurrentSearchUrl).toHaveBeenCalled(); done(); }); }); diff --git a/src/app/shared/mydspace-actions/mydspace-reloadable-actions.ts b/src/app/shared/mydspace-actions/mydspace-reloadable-actions.ts index 28e3ac4040..062bf25741 100644 --- a/src/app/shared/mydspace-actions/mydspace-reloadable-actions.ts +++ b/src/app/shared/mydspace-actions/mydspace-reloadable-actions.ts @@ -105,6 +105,8 @@ export abstract class MyDSpaceReloadableActionsComponent