Fix issue with workspaceitem and workflowitem detail search components

This commit is contained in:
Giuseppe Digilio
2021-01-15 14:05:40 +01:00
parent 44454ec378
commit d8df9c46a5
4 changed files with 28 additions and 2 deletions

View File

@@ -10,6 +10,8 @@ import { WorkflowItem } from '../../../../core/submission/models/workflowitem.mo
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
import { getMockLinkService } from '../../../mocks/link-service.mock';
import { LinkService } from '../../../../core/cache/builders/link.service';
let component: WorkflowItemSearchResultDetailElementComponent; let component: WorkflowItemSearchResultDetailElementComponent;
let fixture: ComponentFixture<WorkflowItemSearchResultDetailElementComponent>; let fixture: ComponentFixture<WorkflowItemSearchResultDetailElementComponent>;
@@ -18,6 +20,7 @@ const compIndex = 1;
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult(); const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const linkService = getMockLinkService();
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bundles: observableOf({}), bundles: observableOf({}),
@@ -58,7 +61,8 @@ describe('WorkflowItemSearchResultDetailElementComponent', () => {
declarations: [WorkflowItemSearchResultDetailElementComponent], declarations: [WorkflowItemSearchResultDetailElementComponent],
providers: [ providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) }, { provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) } { provide: 'indexElementProvider', useValue: (compIndex) },
{ provide: LinkService, useValue: linkService }
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(WorkflowItemSearchResultDetailElementComponent, { }).overrideComponent(WorkflowItemSearchResultDetailElementComponent, {

View File

@@ -11,6 +11,8 @@ import { find } from 'rxjs/operators';
import { isNotUndefined } from '../../../empty.util'; import { isNotUndefined } from '../../../empty.util';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
import { LinkService } from '../../../../core/cache/builders/link.service';
import { followLink } from '../../../utils/follow-link-config.model';
/** /**
* This component renders workflowitem object for the search result in the detail view. * This component renders workflowitem object for the search result in the detail view.
@@ -34,11 +36,18 @@ export class WorkflowItemSearchResultDetailElementComponent extends SearchResult
*/ */
public status = MyDspaceItemStatusType.WORKFLOW; public status = MyDspaceItemStatusType.WORKFLOW;
constructor(
protected linkService: LinkService
) {
super();
}
/** /**
* Initialize all instance variables * Initialize all instance variables
*/ */
ngOnInit() { ngOnInit() {
super.ngOnInit(); super.ngOnInit();
this.linkService.resolveLink(this.dso, followLink('item'));
this.initItem(this.dso.item as Observable<RemoteData<Item>>); this.initItem(this.dso.item as Observable<RemoteData<Item>>);
} }

View File

@@ -10,6 +10,8 @@ import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils'; import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model'; import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
import { getMockLinkService } from '../../../mocks/link-service.mock';
import { LinkService } from '../../../../core/cache/builders/link.service';
let component: WorkspaceItemSearchResultDetailElementComponent; let component: WorkspaceItemSearchResultDetailElementComponent;
let fixture: ComponentFixture<WorkspaceItemSearchResultDetailElementComponent>; let fixture: ComponentFixture<WorkspaceItemSearchResultDetailElementComponent>;
@@ -18,6 +20,7 @@ const compIndex = 1;
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult(); const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
mockResultObject.hitHighlights = {}; mockResultObject.hitHighlights = {};
const linkService = getMockLinkService();
const item = Object.assign(new Item(), { const item = Object.assign(new Item(), {
bundles: observableOf({}), bundles: observableOf({}),
@@ -58,7 +61,8 @@ describe('WorkspaceItemSearchResultDetailElementComponent', () => {
declarations: [WorkspaceItemSearchResultDetailElementComponent], declarations: [WorkspaceItemSearchResultDetailElementComponent],
providers: [ providers: [
{ provide: 'objectElementProvider', useValue: (mockResultObject) }, { provide: 'objectElementProvider', useValue: (mockResultObject) },
{ provide: 'indexElementProvider', useValue: (compIndex) } { provide: 'indexElementProvider', useValue: (compIndex) },
{ provide: LinkService, useValue: linkService }
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(WorkspaceItemSearchResultDetailElementComponent, { }).overrideComponent(WorkspaceItemSearchResultDetailElementComponent, {

View File

@@ -12,6 +12,8 @@ import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspa
import { ViewMode } from '../../../../core/shared/view-mode.model'; import { ViewMode } from '../../../../core/shared/view-mode.model';
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator'; import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
import { WorkspaceItemSearchResult } from '../../../object-collection/shared/workspace-item-search-result.model'; import { WorkspaceItemSearchResult } from '../../../object-collection/shared/workspace-item-search-result.model';
import { followLink } from '../../../utils/follow-link-config.model';
import { LinkService } from '../../../../core/cache/builders/link.service';
/** /**
* This component renders workspace item object for the search result in the detail view. * This component renders workspace item object for the search result in the detail view.
@@ -35,11 +37,18 @@ export class WorkspaceItemSearchResultDetailElementComponent extends SearchResul
*/ */
status = MyDspaceItemStatusType.WORKSPACE; status = MyDspaceItemStatusType.WORKSPACE;
constructor(
protected linkService: LinkService
) {
super();
}
/** /**
* Initialize all instance variables * Initialize all instance variables
*/ */
ngOnInit() { ngOnInit() {
super.ngOnInit(); super.ngOnInit();
this.linkService.resolveLink(this.dso, followLink('item'));
this.initItem(this.dso.item as Observable<RemoteData<Item>>); this.initItem(this.dso.item as Observable<RemoteData<Item>>);
} }