mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
[CST-6494] Fix issue for which sometimes claimed and pool task weren't shown when a filter is applied
This commit is contained in:
@@ -18,6 +18,7 @@ import { getMockLinkService } from '../../../mocks/link-service.mock';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
|
||||
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
|
||||
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
|
||||
|
||||
let component: ClaimedSearchResultListElementComponent;
|
||||
let fixture: ComponentFixture<ClaimedSearchResultListElementComponent>;
|
||||
@@ -59,6 +60,9 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
|
||||
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
|
||||
mockResultObject.indexableObject = Object.assign(new ClaimedTask(), { workflowitem: observableOf(rdWorkflowitem) });
|
||||
const linkService = getMockLinkService();
|
||||
const objectCacheServiceMock = jasmine.createSpyObj('ObjectCacheService', {
|
||||
remove: jasmine.createSpy('remove')
|
||||
});
|
||||
|
||||
describe('ClaimedSearchResultListElementComponent', () => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
@@ -68,7 +72,8 @@ describe('ClaimedSearchResultListElementComponent', () => {
|
||||
providers: [
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
{ provide: LinkService, useValue: linkService },
|
||||
{ provide: DSONameService, useClass: DSONameServiceMock }
|
||||
{ provide: DSONameService, useClass: DSONameServiceMock },
|
||||
{ provide: ObjectCacheService, useValue: objectCacheServiceMock }
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(ClaimedSearchResultListElementComponent, {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { Component } from '@angular/core';
|
||||
import { Component, OnDestroy, OnInit } from '@angular/core';
|
||||
|
||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||
@@ -13,6 +13,7 @@ import { followLink } from '../../../utils/follow-link-config.model';
|
||||
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
|
||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
||||
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
|
||||
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
|
||||
|
||||
@Component({
|
||||
selector: 'ds-claimed-search-result-list-element',
|
||||
@@ -20,7 +21,7 @@ import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
|
||||
templateUrl: './claimed-search-result-list-element.component.html'
|
||||
})
|
||||
@listableObjectComponent(ClaimedTaskSearchResult, ViewMode.ListElement)
|
||||
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> {
|
||||
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> implements OnInit, OnDestroy {
|
||||
|
||||
/**
|
||||
* A boolean representing if to show submitter information
|
||||
@@ -40,7 +41,8 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle
|
||||
public constructor(
|
||||
protected linkService: LinkService,
|
||||
protected truncatableService: TruncatableService,
|
||||
protected dsoNameService: DSONameService
|
||||
protected dsoNameService: DSONameService,
|
||||
protected objectCache: ObjectCacheService
|
||||
) {
|
||||
super(truncatableService, dsoNameService);
|
||||
}
|
||||
@@ -56,4 +58,9 @@ export class ClaimedSearchResultListElementComponent extends SearchResultListEle
|
||||
this.workflowitemRD$ = this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>;
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
// This ensures the object is removed from cache, when action is performed on task
|
||||
this.objectCache.remove(this.dso._links.workflowitem.href);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ import { getMockLinkService } from '../../../mocks/link-service.mock';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
|
||||
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
|
||||
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
|
||||
|
||||
let component: PoolSearchResultListElementComponent;
|
||||
let fixture: ComponentFixture<PoolSearchResultListElementComponent>;
|
||||
@@ -59,6 +60,10 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
|
||||
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
|
||||
mockResultObject.indexableObject = Object.assign(new PoolTask(), { workflowitem: observableOf(rdWorkflowitem) });
|
||||
const linkService = getMockLinkService();
|
||||
const objectCacheServiceMock = jasmine.createSpyObj('ObjectCacheService', {
|
||||
remove: jasmine.createSpy('remove')
|
||||
});
|
||||
|
||||
|
||||
describe('PoolSearchResultListElementComponent', () => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
@@ -68,7 +73,8 @@ describe('PoolSearchResultListElementComponent', () => {
|
||||
providers: [
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
{ provide: LinkService, useValue: linkService },
|
||||
{ provide: DSONameService, useClass: DSONameServiceMock }
|
||||
{ provide: DSONameService, useClass: DSONameServiceMock },
|
||||
{ provide: ObjectCacheService, useValue: objectCacheServiceMock }
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(PoolSearchResultListElementComponent, {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Component, OnDestroy, OnInit } from '@angular/core';
|
||||
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
@@ -14,6 +14,7 @@ import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
import { followLink } from '../../../utils/follow-link-config.model';
|
||||
import { LinkService } from '../../../../core/cache/builders/link.service';
|
||||
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
|
||||
import { ObjectCacheService } from '../../../../core/cache/object-cache.service';
|
||||
|
||||
/**
|
||||
* 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';
|
||||
})
|
||||
|
||||
@listableObjectComponent(PoolTaskSearchResult, ViewMode.ListElement)
|
||||
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit {
|
||||
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit, OnDestroy {
|
||||
|
||||
/**
|
||||
* A boolean representing if to show submitter information
|
||||
@@ -50,7 +51,8 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen
|
||||
constructor(
|
||||
protected linkService: LinkService,
|
||||
protected truncatableService: TruncatableService,
|
||||
protected dsoNameService: DSONameService
|
||||
protected dsoNameService: DSONameService,
|
||||
protected objectCache: ObjectCacheService
|
||||
) {
|
||||
super(truncatableService, dsoNameService);
|
||||
}
|
||||
@@ -66,4 +68,8 @@ export class PoolSearchResultListElementComponent extends SearchResultListElemen
|
||||
this.workflowitemRD$ = this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>;
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
// This ensures the object is removed from cache, when action is performed on task
|
||||
this.objectCache.remove(this.dso._links.workflowitem.href);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user