Skip to content

Commit dfc8133

Browse files
committed
[CST-6494] Fix issue for which sometimes claimed and pool task weren't shown when a filter is applied
1 parent ec0ac73 commit dfc8133

4 files changed

Lines changed: 32 additions & 8 deletions

File tree

src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { getMockLinkService } from '../../../mocks/link-service.mock';
1818
import { By } from '@angular/platform-browser';
1919
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
2020
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
21+
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
2122

2223
let component: ClaimedSearchResultListElementComponent;
2324
let fixture: ComponentFixture<ClaimedSearchResultListElementComponent>;
@@ -59,6 +60,9 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
5960
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
6061
mockResultObject.indexableObject = Object.assign(new ClaimedTask(), { workflowitem: observableOf(rdWorkflowitem) });
6162
const linkService = getMockLinkService();
63+
const objectCacheServiceMock = jasmine.createSpyObj('ObjectCacheService', {
64+
remove: jasmine.createSpy('remove')
65+
});
6266

6367
describe('ClaimedSearchResultListElementComponent', () => {
6468
beforeEach(waitForAsync(() => {
@@ -68,7 +72,8 @@ describe('ClaimedSearchResultListElementComponent', () => {
6872
providers: [
6973
{ provide: TruncatableService, useValue: {} },
7074
{ provide: LinkService, useValue: linkService },
71-
{ provide: DSONameService, useClass: DSONameServiceMock }
75+
{ provide: DSONameService, useClass: DSONameServiceMock },
76+
{ provide: ObjectCacheService, useValue: objectCacheServiceMock }
7277
],
7378
schemas: [NO_ERRORS_SCHEMA]
7479
}).overrideComponent(ClaimedSearchResultListElementComponent, {

src/app/shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component } from '@angular/core';
1+
import { Component, OnDestroy, OnInit } from '@angular/core';
22

33
import { ViewMode } from '../../../../core/shared/view-mode.model';
44
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
@@ -13,14 +13,15 @@ import { followLink } from '../../../utils/follow-link-config.model';
1313
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
1414
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
1515
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
16+
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
1617

1718
@Component({
1819
selector: 'ds-claimed-search-result-list-element',
1920
styleUrls: ['../../search-result-list-element/search-result-list-element.component.scss'],
2021
templateUrl: './claimed-search-result-list-element.component.html'
2122
})
2223
@listableObjectComponent(ClaimedTaskSearchResult, ViewMode.ListElement)
23-
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> {
24+
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> implements OnInit, OnDestroy {
2425

2526
/**
2627
* A boolean representing if to show submitter information
@@ -40,7 +41,8 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle
4041
public constructor(
4142
protected linkService: LinkService,
4243
protected truncatableService: TruncatableService,
43-
protected dsoNameService: DSONameService
44+
protected dsoNameService: DSONameService,
45+
protected objectCache: ObjectCacheService
4446
) {
4547
super(truncatableService, dsoNameService);
4648
}
@@ -56,4 +58,9 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle
5658
this.workflowitemRD$ = this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>;
5759
}
5860

61+
ngOnDestroy() {
62+
// This ensures the object is removed from cache, when action is performed on task
63+
this.objectCache.remove(this.dso._links.workflowitem.href);
64+
}
65+
5966
}

src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.spec.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { getMockLinkService } from '../../../mocks/link-service.mock';
1818
import { By } from '@angular/platform-browser';
1919
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
2020
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
21+
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
2122

2223
let component: PoolSearchResultListElementComponent;
2324
let fixture: ComponentFixture<PoolSearchResultListElementComponent>;
@@ -59,6 +60,10 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
5960
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
6061
mockResultObject.indexableObject = Object.assign(new PoolTask(), { workflowitem: observableOf(rdWorkflowitem) });
6162
const linkService = getMockLinkService();
63+
const objectCacheServiceMock = jasmine.createSpyObj('ObjectCacheService', {
64+
remove: jasmine.createSpy('remove')
65+
});
66+
6267

6368
describe('PoolSearchResultListElementComponent', () => {
6469
beforeEach(waitForAsync(() => {
@@ -68,7 +73,8 @@ describe('PoolSearchResultListElementComponent', () => {
6873
providers: [
6974
{ provide: TruncatableService, useValue: {} },
7075
{ provide: LinkService, useValue: linkService },
71-
{ provide: DSONameService, useClass: DSONameServiceMock }
76+
{ provide: DSONameService, useClass: DSONameServiceMock },
77+
{ provide: ObjectCacheService, useValue: objectCacheServiceMock }
7278
],
7379
schemas: [NO_ERRORS_SCHEMA]
7480
}).overrideComponent(PoolSearchResultListElementComponent, {

src/app/shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, OnInit } from '@angular/core';
1+
import { Component, OnDestroy, OnInit } from '@angular/core';
22

33
import { Observable } from 'rxjs';
44

@@ -14,6 +14,7 @@ import { TruncatableService } from '../../../truncatable/truncatable.service';
1414
import { followLink } from '../../../utils/follow-link-config.model';
1515
import { LinkService } from '../../../../core/cache/builders/link.service';
1616
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
17+
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
1718

1819
/**
1920
* This component renders pool task object for the search result in the list view.
@@ -25,7 +26,7 @@ import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
2526
})
2627

2728
@listableObjectComponent(PoolTaskSearchResult, ViewMode.ListElement)
28-
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit {
29+
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit, OnDestroy {
2930

3031
/**
3132
* A boolean representing if to show submitter information
@@ -50,7 +51,8 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen
5051
constructor(
5152
protected linkService: LinkService,
5253
protected truncatableService: TruncatableService,
53-
protected dsoNameService: DSONameService
54+
protected dsoNameService: DSONameService,
55+
protected objectCache: ObjectCacheService
5456
) {
5557
super(truncatableService, dsoNameService);
5658
}
@@ -66,4 +68,8 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen
6668
this.workflowitemRD$ = this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>;
6769
}
6870

71+
ngOnDestroy() {
72+
// This ensures the object is removed from cache, when action is performed on task
73+
this.objectCache.remove(this.dso._links.workflowitem.href);
74+
}
6975
}

0 commit comments

Comments
 (0)