mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-18 15:33:04 +00:00
Merge branch 'master' into w2p-65572_Add-support-for-bundles
Conflicts: src/app/core/shared/item.model.ts src/app/entity-groups/journal-entities/item-grid-elements/journal-issue/journal-issue-grid-element.component.spec.ts src/app/entity-groups/journal-entities/item-grid-elements/journal-volume/journal-volume-grid-element.component.spec.ts src/app/entity-groups/journal-entities/item-grid-elements/journal/journal-grid-element.component.spec.ts src/app/entity-groups/journal-entities/item-list-elements/journal-issue/journal-issue-list-element.component.spec.ts src/app/entity-groups/journal-entities/item-list-elements/journal-volume/journal-volume-list-element.component.spec.ts src/app/entity-groups/journal-entities/item-list-elements/journal/journal-list-element.component.spec.ts src/app/entity-groups/research-entities/item-grid-elements/person/person-grid-element.component.spec.ts src/app/entity-groups/research-entities/item-grid-elements/project/project-grid-element.component.spec.ts src/app/entity-groups/research-entities/item-list-elements/orgunit/orgunit-list-element.component.spec.ts src/app/entity-groups/research-entities/item-list-elements/person/person-list-element.component.spec.ts src/app/entity-groups/research-entities/item-list-elements/project/project-list-element.component.spec.ts src/app/shared/object-grid/item-grid-element/item-grid-element.component.spec.ts src/app/shared/object-grid/item-grid-element/item-types/publication/publication-grid-element.component.spec.ts src/app/shared/object-list/item-list-element/item-types/publication/publication-list-element.component.spec.ts src/app/shared/testing/utils.ts
This commit is contained in:
@@ -5,24 +5,25 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { ClaimedMyDSpaceResultListElementComponent } from './claimed-my-dspace-result-list-element.component';
|
||||
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
||||
import { ClaimedSearchResultListElementComponent } from './claimed-search-result-list-element.component';
|
||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model';
|
||||
import { TruncatableAction } from '../../../truncatable/truncatable.actions';
|
||||
import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
|
||||
let component: ClaimedMyDSpaceResultListElementComponent;
|
||||
let fixture: ComponentFixture<ClaimedMyDSpaceResultListElementComponent>;
|
||||
let component: ClaimedSearchResultListElementComponent;
|
||||
let fixture: ComponentFixture<ClaimedSearchResultListElementComponent>;
|
||||
|
||||
const compIndex = 1;
|
||||
|
||||
const mockResultObject: ClaimedTaskMyDSpaceResult = new ClaimedTaskMyDSpaceResult();
|
||||
const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
|
||||
mockResultObject.hitHighlights = {};
|
||||
|
||||
const item = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.title': [
|
||||
{
|
||||
@@ -55,23 +56,22 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
|
||||
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
|
||||
mockResultObject.indexableObject = Object.assign(new ClaimedTask(), { workflowitem: observableOf(rdWorkflowitem) });
|
||||
|
||||
describe('ClaimedMyDSpaceResultListElementComponent', () => {
|
||||
describe('ClaimedSearchResultListElementComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [NoopAnimationsModule],
|
||||
declarations: [ClaimedMyDSpaceResultListElementComponent],
|
||||
declarations: [ClaimedSearchResultListElementComponent],
|
||||
providers: [
|
||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(ClaimedMyDSpaceResultListElementComponent, {
|
||||
}).overrideComponent(ClaimedSearchResultListElementComponent, {
|
||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(async(() => {
|
||||
fixture = TestBed.createComponent(ClaimedMyDSpaceResultListElementComponent);
|
||||
fixture = TestBed.createComponent(ClaimedSearchResultListElementComponent);
|
||||
component = fixture.componentInstance;
|
||||
}));
|
||||
|
@@ -4,30 +4,28 @@ import { Location, LocationStrategy, PathLocationStrategy } from '@angular/commo
|
||||
import { Observable } from 'rxjs';
|
||||
import { find } from 'rxjs/operators';
|
||||
|
||||
import { renderElementsFor } from '../../../object-collection/shared/dso-element-decorator';
|
||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { isNotUndefined } from '../../../empty.util';
|
||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
||||
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { SetViewMode } from '../../../view-mode';
|
||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model';
|
||||
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
|
||||
|
||||
/**
|
||||
* This component renders claimed task object for the mydspace result in the list view.
|
||||
* This component renders claimed task object for the search result in the list view.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-claimed-my-dspace-result-list-element',
|
||||
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
||||
templateUrl: './claimed-my-dspace-result-list-element.component.html',
|
||||
selector: 'ds-claimed-search-result-list-element',
|
||||
styleUrls: ['../../search-result-list-element/search-result-list-element.component.scss'],
|
||||
templateUrl: './claimed-search-result-list-element.component.html',
|
||||
providers: [Location, { provide: LocationStrategy, useClass: PathLocationStrategy }]
|
||||
})
|
||||
|
||||
@renderElementsFor(ClaimedTaskMyDSpaceResult, SetViewMode.List)
|
||||
@renderElementsFor(ClaimedTask, SetViewMode.List)
|
||||
export class ClaimedMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<ClaimedTaskMyDSpaceResult, ClaimedTask> {
|
||||
@listableObjectComponent(ClaimedTaskSearchResult, ViewMode.ListElement)
|
||||
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> {
|
||||
|
||||
/**
|
||||
* A boolean representing if to show submitter information
|
||||
@@ -48,6 +46,7 @@ export class ClaimedMyDSpaceResultListElementComponent extends MyDSpaceResultLis
|
||||
* Initialize all instance variables
|
||||
*/
|
||||
ngOnInit() {
|
||||
super.ngOnInit();
|
||||
this.initWorkflowItem(this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>);
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@ let component: ItemListPreviewComponent;
|
||||
let fixture: ComponentFixture<ItemListPreviewComponent>;
|
||||
|
||||
const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.contributor.author': [
|
||||
{
|
||||
@@ -31,7 +31,7 @@ const mockItemWithAuthorAndDate: Item = Object.assign(new Item(), {
|
||||
}
|
||||
});
|
||||
const mockItemWithoutAuthorAndDate: Item = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.title': [
|
||||
{
|
||||
|
@@ -3,7 +3,7 @@ import { Component, Input } from '@angular/core';
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { fadeInOut } from '../../../animations/fade';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { MyDSpaceResult } from '../../../../+my-dspace-page/my-dspace-result.model';
|
||||
import { SearchResult } from '../../../../+search-page/search-result.model';
|
||||
|
||||
/**
|
||||
* This component show metadata for the given item object in the list view.
|
||||
@@ -22,9 +22,9 @@ export class ItemListPreviewComponent {
|
||||
@Input() item: Item;
|
||||
|
||||
/**
|
||||
* The mydspace result object
|
||||
* The search result object
|
||||
*/
|
||||
@Input() object: MyDSpaceResult<any>;
|
||||
@Input() object: SearchResult<any>;
|
||||
|
||||
/**
|
||||
* Represent item's status
|
||||
|
@@ -1,27 +0,0 @@
|
||||
import { Component } from '@angular/core';
|
||||
|
||||
import { renderElementsFor } from '../../../object-collection/shared/dso-element-decorator';
|
||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { ItemMyDSpaceResult } from '../../../object-collection/shared/item-my-dspace-result.model';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { SetViewMode } from '../../../view-mode';
|
||||
|
||||
/**
|
||||
* This component renders item object for the mydspace result in the list view.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-workspaceitem-my-dspace-result-list-element',
|
||||
styleUrls: ['../my-dspace-result-list-element.component.scss', './item-my-dspace-result-list-element.component.scss'],
|
||||
templateUrl: './item-my-dspace-result-list-element.component.html'
|
||||
})
|
||||
|
||||
@renderElementsFor(ItemMyDSpaceResult, SetViewMode.List)
|
||||
export class ItemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<ItemMyDSpaceResult, Item> {
|
||||
|
||||
/**
|
||||
* Represent item's status
|
||||
*/
|
||||
public status = MyDspaceItemStatusType.ARCHIVED;
|
||||
|
||||
}
|
@@ -5,20 +5,21 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { ItemMyDSpaceResultListElementComponent } from './item-my-dspace-result-list-element.component';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { ItemMyDSpaceResult } from '../../../object-collection/shared/item-my-dspace-result.model';
|
||||
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
|
||||
import { ItemSearchResultListElementSubmissionComponent } from './item-search-result-list-element-submission.component';
|
||||
import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
|
||||
let component: ItemMyDSpaceResultListElementComponent;
|
||||
let fixture: ComponentFixture<ItemMyDSpaceResultListElementComponent>;
|
||||
let component: ItemSearchResultListElementSubmissionComponent;
|
||||
let fixture: ComponentFixture<ItemSearchResultListElementSubmissionComponent>;
|
||||
|
||||
const compIndex = 1;
|
||||
|
||||
const mockResultObject: ItemMyDSpaceResult = new ItemMyDSpaceResult();
|
||||
const mockResultObject: ItemSearchResult = new ItemSearchResult();
|
||||
mockResultObject.hitHighlights = {};
|
||||
|
||||
mockResultObject.indexableObject = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.title': [
|
||||
{
|
||||
@@ -51,19 +52,18 @@ describe('ItemMyDSpaceResultListElementComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [NoopAnimationsModule],
|
||||
declarations: [ItemMyDSpaceResultListElementComponent],
|
||||
declarations: [ItemSearchResultListElementSubmissionComponent],
|
||||
providers: [
|
||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(ItemMyDSpaceResultListElementComponent, {
|
||||
}).overrideComponent(ItemSearchResultListElementSubmissionComponent, {
|
||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(async(() => {
|
||||
fixture = TestBed.createComponent(ItemMyDSpaceResultListElementComponent);
|
||||
fixture = TestBed.createComponent(ItemSearchResultListElementSubmissionComponent);
|
||||
component = fixture.componentInstance;
|
||||
}));
|
||||
|
@@ -0,0 +1,31 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||
import { Context } from '../../../../core/shared/context.model';
|
||||
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
|
||||
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
|
||||
|
||||
/**
|
||||
* This component renders item object for the search result in the list view for submission.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-item-search-result-list-element-submission',
|
||||
styleUrls: ['../../search-result-list-element/search-result-list-element.component.scss', './item-search-result-list-element-submission.component.scss'],
|
||||
templateUrl: './item-search-result-list-element-submission.component.html'
|
||||
})
|
||||
|
||||
@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.Workspace)
|
||||
@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.Workflow)
|
||||
export class ItemSearchResultListElementSubmissionComponent extends SearchResultListElementComponent<ItemSearchResult, Item> implements OnInit {
|
||||
/**
|
||||
* Represent item's status
|
||||
*/
|
||||
public status = MyDspaceItemStatusType.ARCHIVED;
|
||||
|
||||
ngOnInit() {
|
||||
super.ngOnInit();
|
||||
}
|
||||
}
|
@@ -1 +0,0 @@
|
||||
@import '../search-result-list-element/search-result-list-element.component.scss';
|
@@ -1,58 +0,0 @@
|
||||
import { Component, Inject } from '@angular/core';
|
||||
|
||||
import { MyDSpaceResult } from '../../../+my-dspace-page/my-dspace-result.model';
|
||||
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
|
||||
import { ListableObject } from '../../object-collection/shared/listable-object.model';
|
||||
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
||||
import { Metadata } from '../../../core/shared/metadata.utils';
|
||||
|
||||
@Component({
|
||||
selector: 'ds-my-dspace-result-list-element',
|
||||
template: ``
|
||||
})
|
||||
export class MyDSpaceResultListElementComponent<T extends MyDSpaceResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> {
|
||||
|
||||
/**
|
||||
* The result element object
|
||||
*/
|
||||
dso: K;
|
||||
|
||||
/**
|
||||
* The array index of the result element
|
||||
*/
|
||||
dsoIndex: number;
|
||||
|
||||
/**
|
||||
* Initialize instance variables
|
||||
*
|
||||
* @param {ListableObject} listable
|
||||
* @param {number} index
|
||||
*/
|
||||
public constructor(@Inject('objectElementProvider') public listable: ListableObject,
|
||||
@Inject('indexElementProvider') public index: number) {
|
||||
super(listable);
|
||||
this.dso = this.object.indexableObject;
|
||||
this.dsoIndex = this.index;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights.
|
||||
*
|
||||
* @param {string|string[]} keyOrKeys The metadata key(s) in scope. Wildcards are supported; see [[Metadata]].
|
||||
* @returns {string[]} the matching string values or an empty array.
|
||||
*/
|
||||
allMetadataValues(keyOrKeys: string | string[]): string[] {
|
||||
return Metadata.allValues([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the first matching metadata string value from hitHighlights or dso metadata, preferring hitHighlights.
|
||||
*
|
||||
* @param {string|string[]} keyOrKeys The metadata key(s) in scope. Wildcards are supported; see [[Metadata]].
|
||||
* @returns {string} the first matching string value, or `undefined`.
|
||||
*/
|
||||
firstMetadataValue(keyOrKeys: string | string[]): string {
|
||||
return Metadata.firstValue([this.object.hitHighlights, this.dso.metadata], keyOrKeys);
|
||||
}
|
||||
|
||||
}
|
@@ -5,24 +5,24 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { PoolMyDSpaceResultListElementComponent } from './pool-my-dspace-result-list-element.component';
|
||||
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
||||
import { PoolSearchResultListElementComponent } from './pool-search-result-list-element.component';
|
||||
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||
import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-search-result.model';
|
||||
import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
|
||||
let component: PoolMyDSpaceResultListElementComponent;
|
||||
let fixture: ComponentFixture<PoolMyDSpaceResultListElementComponent>;
|
||||
let component: PoolSearchResultListElementComponent;
|
||||
let fixture: ComponentFixture<PoolSearchResultListElementComponent>;
|
||||
|
||||
const compIndex = 1;
|
||||
|
||||
const mockResultObject: PoolTaskMyDSpaceResult = new PoolTaskMyDSpaceResult();
|
||||
const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
|
||||
mockResultObject.hitHighlights = {};
|
||||
|
||||
const item = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.title': [
|
||||
{
|
||||
@@ -55,23 +55,22 @@ const workflowitem = Object.assign(new WorkflowItem(), { item: observableOf(rdIt
|
||||
const rdWorkflowitem = createSuccessfulRemoteDataObject(workflowitem);
|
||||
mockResultObject.indexableObject = Object.assign(new PoolTask(), { workflowitem: observableOf(rdWorkflowitem) });
|
||||
|
||||
describe('PoolMyDSpaceResultListElementComponent', () => {
|
||||
describe('PoolSearchResultListElementComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [NoopAnimationsModule],
|
||||
declarations: [PoolMyDSpaceResultListElementComponent],
|
||||
declarations: [PoolSearchResultListElementComponent],
|
||||
providers: [
|
||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(PoolMyDSpaceResultListElementComponent, {
|
||||
}).overrideComponent(PoolSearchResultListElementComponent, {
|
||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(async(() => {
|
||||
fixture = TestBed.createComponent(PoolMyDSpaceResultListElementComponent);
|
||||
fixture = TestBed.createComponent(PoolSearchResultListElementComponent);
|
||||
component = fixture.componentInstance;
|
||||
}));
|
||||
|
@@ -1,32 +1,30 @@
|
||||
import { Component, Inject, OnInit } from '@angular/core';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
import { Observable } from 'rxjs';
|
||||
import { find } from 'rxjs/operators';
|
||||
|
||||
import { renderElementsFor } from '../../../object-collection/shared/dso-element-decorator';
|
||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { isNotUndefined } from '../../../empty.util';
|
||||
import { ListableObject } from '../../../object-collection/shared/listable-object.model';
|
||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
||||
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { SetViewMode } from '../../../view-mode';
|
||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||
import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-search-result.model';
|
||||
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
|
||||
import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
|
||||
/**
|
||||
* This component renders pool task object for the mydspace result in the list view.
|
||||
* This component renders pool task object for the search result in the list view.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-pool-my-dspace-result-list-element',
|
||||
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
||||
templateUrl: './pool-my-dspace-result-list-element.component.html',
|
||||
selector: 'ds-pool-search-result-list-element',
|
||||
styleUrls: ['../../search-result-list-element/search-result-list-element.component.scss'],
|
||||
templateUrl: './pool-search-result-list-element.component.html',
|
||||
})
|
||||
|
||||
@renderElementsFor(PoolTaskMyDSpaceResult, SetViewMode.List)
|
||||
@renderElementsFor(PoolTask, SetViewMode.List)
|
||||
export class PoolMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<PoolTaskMyDSpaceResult, PoolTask> implements OnInit {
|
||||
@listableObjectComponent(PoolTaskSearchResult, ViewMode.ListElement)
|
||||
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit {
|
||||
|
||||
/**
|
||||
* A boolean representing if to show submitter information
|
||||
@@ -43,15 +41,20 @@ export class PoolMyDSpaceResultListElementComponent extends MyDSpaceResultListEl
|
||||
*/
|
||||
public workflowitem: WorkflowItem;
|
||||
|
||||
constructor(@Inject('objectElementProvider') public listable: ListableObject,
|
||||
@Inject('indexElementProvider') public index: number) {
|
||||
super(listable, index);
|
||||
/**
|
||||
* The index of this list element
|
||||
*/
|
||||
public index: number;
|
||||
|
||||
constructor(protected truncatableService: TruncatableService) {
|
||||
super(truncatableService);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize all instance variables
|
||||
*/
|
||||
ngOnInit() {
|
||||
super.ngOnInit();
|
||||
this.initWorkflowItem(this.dso.workflowitem as Observable<RemoteData<WorkflowItem>>);
|
||||
}
|
||||
|
@@ -5,23 +5,23 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { WorkflowitemMyDSpaceResultListElementComponent } from './workflowitem-my-dspace-result-list-element.component';
|
||||
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||
import { WorkflowItemSearchResultListElementComponent } from './workflow-item-search-result-list-element.component';
|
||||
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
|
||||
import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
|
||||
let component: WorkflowitemMyDSpaceResultListElementComponent;
|
||||
let fixture: ComponentFixture<WorkflowitemMyDSpaceResultListElementComponent>;
|
||||
let component: WorkflowItemSearchResultListElementComponent;
|
||||
let fixture: ComponentFixture<WorkflowItemSearchResultListElementComponent>;
|
||||
|
||||
const compIndex = 1;
|
||||
|
||||
const mockResultObject: WorkflowitemMyDSpaceResult = new WorkflowitemMyDSpaceResult();
|
||||
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
|
||||
mockResultObject.hitHighlights = {};
|
||||
|
||||
const item = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.title': [
|
||||
{
|
||||
@@ -52,23 +52,22 @@ const item = Object.assign(new Item(), {
|
||||
const rd = createSuccessfulRemoteDataObject(item);
|
||||
mockResultObject.indexableObject = Object.assign(new WorkflowItem(), { item: observableOf(rd) });
|
||||
|
||||
describe('WorkflowitemMyDSpaceResultListElementComponent', () => {
|
||||
describe('WorkflowItemSearchResultListElementComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [NoopAnimationsModule],
|
||||
declarations: [WorkflowitemMyDSpaceResultListElementComponent],
|
||||
declarations: [WorkflowItemSearchResultListElementComponent],
|
||||
providers: [
|
||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(WorkflowitemMyDSpaceResultListElementComponent, {
|
||||
}).overrideComponent(WorkflowItemSearchResultListElementComponent, {
|
||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(async(() => {
|
||||
fixture = TestBed.createComponent(WorkflowitemMyDSpaceResultListElementComponent);
|
||||
fixture = TestBed.createComponent(WorkflowItemSearchResultListElementComponent);
|
||||
component = fixture.componentInstance;
|
||||
}));
|
||||
|
@@ -3,29 +3,27 @@ import { Component } from '@angular/core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { find } from 'rxjs/operators';
|
||||
|
||||
import { renderElementsFor } from '../../../object-collection/shared/dso-element-decorator';
|
||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { isNotUndefined } from '../../../empty.util';
|
||||
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { SetViewMode } from '../../../view-mode';
|
||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
|
||||
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
|
||||
|
||||
/**
|
||||
* This component renders workflowitem object for the mydspace result in the list view.
|
||||
* This component renders workflowitem object for the search result in the list view.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-workflowitem-my-dspace-result-list-element',
|
||||
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
||||
templateUrl: './workflowitem-my-dspace-result-list-element.component.html',
|
||||
selector: 'ds-workflow-item-my-dspace-result-list-element',
|
||||
styleUrls: ['../../search-result-list-element/search-result-list-element.component.scss'],
|
||||
templateUrl: './workflow-item-search-result-list-element.component.html',
|
||||
})
|
||||
|
||||
@renderElementsFor(WorkflowitemMyDSpaceResult, SetViewMode.List)
|
||||
@renderElementsFor(WorkflowItem, SetViewMode.List)
|
||||
export class WorkflowitemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<WorkflowitemMyDSpaceResult, WorkflowItem> {
|
||||
@listableObjectComponent(WorkflowItemSearchResult, ViewMode.ListElement)
|
||||
export class WorkflowItemSearchResultListElementComponent extends SearchResultListElementComponent<WorkflowItemSearchResult, WorkflowItem> {
|
||||
|
||||
/**
|
||||
* The item object that belonging to the result object
|
||||
@@ -41,7 +39,8 @@ export class WorkflowitemMyDSpaceResultListElementComponent extends MyDSpaceResu
|
||||
* Initialize all instance variables
|
||||
*/
|
||||
ngOnInit() {
|
||||
this.initItem(this.dso.item as Observable<RemoteData<Item>>);
|
||||
super.ngOnInit();
|
||||
this.initItem(this.dso.item as Observable<RemoteData<Item>> );
|
||||
}
|
||||
|
||||
/**
|
@@ -5,23 +5,23 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { WorkspaceitemMyDSpaceResultListElementComponent } from './workspaceitem-my-dspace-result-list-element.component';
|
||||
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
||||
import { WorkspaceItemSearchResultListElementComponent } from './workspace-item-search-result-list-element.component';
|
||||
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
|
||||
import { TruncatableService } from '../../../truncatable/truncatable.service';
|
||||
|
||||
let component: WorkspaceitemMyDSpaceResultListElementComponent;
|
||||
let fixture: ComponentFixture<WorkspaceitemMyDSpaceResultListElementComponent>;
|
||||
let component: WorkspaceItemSearchResultListElementComponent;
|
||||
let fixture: ComponentFixture<WorkspaceItemSearchResultListElementComponent>;
|
||||
|
||||
const compIndex = 1;
|
||||
|
||||
const mockResultObject: WorkspaceitemMyDSpaceResult = new WorkspaceitemMyDSpaceResult();
|
||||
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
|
||||
mockResultObject.hitHighlights = {};
|
||||
|
||||
const item = Object.assign(new Item(), {
|
||||
bitstreams: observableOf({}),
|
||||
bundles: observableOf({}),
|
||||
metadata: {
|
||||
'dc.title': [
|
||||
{
|
||||
@@ -52,23 +52,22 @@ const item = Object.assign(new Item(), {
|
||||
const rd = createSuccessfulRemoteDataObject(item);
|
||||
mockResultObject.indexableObject = Object.assign(new WorkspaceItem(), { item: observableOf(rd) });
|
||||
|
||||
describe('WorkspaceitemMyDSpaceResultListElementComponent', () => {
|
||||
describe('WorkspaceItemSearchResultListElementComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [NoopAnimationsModule],
|
||||
declarations: [WorkspaceitemMyDSpaceResultListElementComponent],
|
||||
declarations: [WorkspaceItemSearchResultListElementComponent],
|
||||
providers: [
|
||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||
{ provide: TruncatableService, useValue: {} },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).overrideComponent(WorkspaceitemMyDSpaceResultListElementComponent, {
|
||||
}).overrideComponent(WorkspaceItemSearchResultListElementComponent, {
|
||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(async(() => {
|
||||
fixture = TestBed.createComponent(WorkspaceitemMyDSpaceResultListElementComponent);
|
||||
fixture = TestBed.createComponent(WorkspaceItemSearchResultListElementComponent);
|
||||
component = fixture.componentInstance;
|
||||
}));
|
||||
|
@@ -3,28 +3,27 @@ import { Component } from '@angular/core';
|
||||
import { Observable } from 'rxjs';
|
||||
import { find } from 'rxjs/operators';
|
||||
|
||||
import { renderElementsFor } from '../../../object-collection/shared/dso-element-decorator';
|
||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
||||
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
||||
import { RemoteData } from '../../../../core/data/remote-data';
|
||||
import { isNotUndefined } from '../../../empty.util';
|
||||
import { Item } from '../../../../core/shared/item.model';
|
||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||
import { SetViewMode } from '../../../view-mode';
|
||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||
import { WorkspaceItemSearchResult } from '../../../object-collection/shared/workspace-item-search-result.model';
|
||||
import { SearchResultListElementComponent } from '../../search-result-list-element/search-result-list-element.component';
|
||||
|
||||
/**
|
||||
* This component renders workspaceitem object for the mydspace result in the list view.
|
||||
* This component renders workspaceitem object for the search result in the list view.
|
||||
*/
|
||||
@Component({
|
||||
selector: 'ds-workspaceitem-my-dspace-result-list-element',
|
||||
styleUrls: ['../my-dspace-result-list-element.component.scss', './workspaceitem-my-dspace-result-list-element.component.scss'],
|
||||
templateUrl: './workspaceitem-my-dspace-result-list-element.component.html',
|
||||
selector: 'ds-workspace-item-search-result-list-element',
|
||||
styleUrls: ['../../search-result-list-element/search-result-list-element.component.scss', './workspace-item-search-result-list-element.component.scss'],
|
||||
templateUrl: './workspace-item-search-result-list-element.component.html',
|
||||
})
|
||||
|
||||
@renderElementsFor(WorkspaceitemMyDSpaceResult, SetViewMode.List)
|
||||
export class WorkspaceitemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<WorkspaceitemMyDSpaceResult, WorkspaceItem> {
|
||||
@listableObjectComponent(WorkspaceItemSearchResult, ViewMode.ListElement)
|
||||
export class WorkspaceItemSearchResultListElementComponent extends SearchResultListElementComponent<WorkspaceItemSearchResult, WorkspaceItem> {
|
||||
|
||||
/**
|
||||
* The item object that belonging to the result object
|
||||
@@ -40,6 +39,7 @@ export class WorkspaceitemMyDSpaceResultListElementComponent extends MyDSpaceRes
|
||||
* Initialize all instance variables
|
||||
*/
|
||||
ngOnInit() {
|
||||
super.ngOnInit();
|
||||
this.initItem(this.dso.item as Observable<RemoteData<Item>>);
|
||||
}
|
||||
|
Reference in New Issue
Block a user