mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-09 19:13:08 +00:00
refactored mydspace/listelements etc
This commit is contained in:
@@ -7,7 +7,6 @@ import { TranslateService } from '@ngx-translate/core';
|
|||||||
|
|
||||||
import { SubmissionState } from '../../submission/submission.reducers';
|
import { SubmissionState } from '../../submission/submission.reducers';
|
||||||
import { AuthService } from '../../core/auth/auth.service';
|
import { AuthService } from '../../core/auth/auth.service';
|
||||||
import { MyDSpaceResult } from '../my-dspace-result.model';
|
|
||||||
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
||||||
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
||||||
import { NotificationOptions } from '../../shared/notifications/models/notification-options.model';
|
import { NotificationOptions } from '../../shared/notifications/models/notification-options.model';
|
||||||
@@ -15,6 +14,7 @@ import { UploaderOptions } from '../../shared/uploader/uploader-options.model';
|
|||||||
import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
|
import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
|
||||||
import { NotificationType } from '../../shared/notifications/models/notification-type';
|
import { NotificationType } from '../../shared/notifications/models/notification-type';
|
||||||
import { hasValue } from '../../shared/empty.util';
|
import { hasValue } from '../../shared/empty.util';
|
||||||
|
import { SearchResult } from '../../+search-page/search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component represents the whole mydspace page header
|
* This component represents the whole mydspace page header
|
||||||
@@ -25,7 +25,7 @@ import { hasValue } from '../../shared/empty.util';
|
|||||||
templateUrl: './my-dspace-new-submission.component.html'
|
templateUrl: './my-dspace-new-submission.component.html'
|
||||||
})
|
})
|
||||||
export class MyDSpaceNewSubmissionComponent implements OnDestroy, OnInit {
|
export class MyDSpaceNewSubmissionComponent implements OnDestroy, OnInit {
|
||||||
@Output() uploadEnd = new EventEmitter<Array<MyDSpaceResult<DSpaceObject>>>();
|
@Output() uploadEnd = new EventEmitter<Array<SearchResult<DSpaceObject>>>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The UploaderOptions object
|
* The UploaderOptions object
|
||||||
|
@@ -20,7 +20,6 @@ import { SearchService } from '../+search-page/search-service/search.service';
|
|||||||
import { SearchSidebarService } from '../+search-page/search-sidebar/search-sidebar.service';
|
import { SearchSidebarService } from '../+search-page/search-sidebar/search-sidebar.service';
|
||||||
import { hasValue } from '../shared/empty.util';
|
import { hasValue } from '../shared/empty.util';
|
||||||
import { getSucceededRemoteData } from '../core/shared/operators';
|
import { getSucceededRemoteData } from '../core/shared/operators';
|
||||||
import { MyDSpaceResult } from './my-dspace-result.model';
|
|
||||||
import { MyDSpaceResponseParsingService } from '../core/data/mydspace-response-parsing.service';
|
import { MyDSpaceResponseParsingService } from '../core/data/mydspace-response-parsing.service';
|
||||||
import { SearchConfigurationOption } from '../+search-page/search-switch-configuration/search-configuration-option.model';
|
import { SearchConfigurationOption } from '../+search-page/search-switch-configuration/search-configuration-option.model';
|
||||||
import { RoleType } from '../core/roles/role-types';
|
import { RoleType } from '../core/roles/role-types';
|
||||||
@@ -28,6 +27,7 @@ import { SearchConfigurationService } from '../+search-page/search-service/searc
|
|||||||
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
||||||
import { ViewMode } from '../core/shared/view-mode.model';
|
import { ViewMode } from '../core/shared/view-mode.model';
|
||||||
import { MyDSpaceRequest } from '../core/data/request.models';
|
import { MyDSpaceRequest } from '../core/data/request.models';
|
||||||
|
import { SearchResult } from '../+search-page/search-result.model';
|
||||||
|
|
||||||
export const MYDSPACE_ROUTE = '/mydspace';
|
export const MYDSPACE_ROUTE = '/mydspace';
|
||||||
export const SEARCH_CONFIG_SERVICE: InjectionToken<SearchConfigurationService> = new InjectionToken<SearchConfigurationService>('searchConfigurationService');
|
export const SEARCH_CONFIG_SERVICE: InjectionToken<SearchConfigurationService> = new InjectionToken<SearchConfigurationService>('searchConfigurationService');
|
||||||
@@ -63,7 +63,7 @@ export class MyDSpacePageComponent implements OnInit {
|
|||||||
/**
|
/**
|
||||||
* The current search results
|
* The current search results
|
||||||
*/
|
*/
|
||||||
resultsRD$: BehaviorSubject<RemoteData<PaginatedList<MyDSpaceResult<DSpaceObject>>>> = new BehaviorSubject(null);
|
resultsRD$: BehaviorSubject<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>> = new BehaviorSubject(null);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The current paginated search options
|
* The current paginated search options
|
||||||
|
@@ -7,19 +7,20 @@ import { MyDspacePageRoutingModule } from './my-dspace-page-routing.module';
|
|||||||
import { MyDSpacePageComponent } from './my-dspace-page.component';
|
import { MyDSpacePageComponent } from './my-dspace-page.component';
|
||||||
import { SearchPageModule } from '../+search-page/search-page.module';
|
import { SearchPageModule } from '../+search-page/search-page.module';
|
||||||
import { MyDSpaceResultsComponent } from './my-dspace-results/my-dspace-results.component';
|
import { MyDSpaceResultsComponent } from './my-dspace-results/my-dspace-results.component';
|
||||||
import { WorkspaceitemMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workspaceitem-my-dspace-result/workspaceitem-my-dspace-result-list-element.component';
|
import { WorkspaceItemSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component';
|
||||||
import { ItemMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/item-my-dspace-result/item-my-dspace-result-list-element.component';
|
import { ClaimedSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component';
|
||||||
import { WorkflowitemMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workflowitem-my-dspace-result/workflowitem-my-dspace-result-list-element.component';
|
import { PoolSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component';
|
||||||
import { ClaimedMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-my-dspace-result/claimed-my-dspace-result-list-element.component';
|
|
||||||
import { PoolMyDSpaceResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/pool-my-dspace-result/pool-my-dspace-result-list-element.component';
|
|
||||||
import { MyDSpaceNewSubmissionComponent } from './my-dspace-new-submission/my-dspace-new-submission.component';
|
import { MyDSpaceNewSubmissionComponent } from './my-dspace-new-submission/my-dspace-new-submission.component';
|
||||||
import { ItemMyDSpaceResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/item-my-dspace-result/item-my-dspace-result-detail-element.component';
|
import { ItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component';
|
||||||
import { WorkspaceitemMyDSpaceResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workspaceitem-my-dspace-result/workspaceitem-my-dspace-result-detail-element.component';
|
import { WorkspaceItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workspace-item-my-dspace-result/workspace-item-search-result-detail-element.component';
|
||||||
import { WorkflowitemMyDSpaceResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workflowitem-my-dspace-result/workflowitem-my-dspace-result-detail-element.component';
|
import { WorkflowItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component';
|
||||||
import { ClaimedMyDSpaceResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/claimed-my-dspace-result/claimed-my-dspace-result-detail-element.component';
|
import { ClaimedTaskSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component';
|
||||||
import { PoolMyDSpaceResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/pool-my-dspace-result/pool-my-dspace-result-detail-element.component';
|
|
||||||
import { MyDSpaceGuard } from './my-dspace.guard';
|
import { MyDSpaceGuard } from './my-dspace.guard';
|
||||||
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
||||||
|
import { SearchResultListElementComponent } from '../shared/object-list/search-result-list-element/search-result-list-element.component';
|
||||||
|
import { ItemSearchResultListElementSubmissionComponent } from '../shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component';
|
||||||
|
import { WorkflowItemSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component';
|
||||||
|
import { PoolSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/pool-my-dspace-result/pool-search-result-detail-element.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -31,33 +32,33 @@ import { MyDSpaceConfigurationService } from './my-dspace-configuration.service'
|
|||||||
declarations: [
|
declarations: [
|
||||||
MyDSpacePageComponent,
|
MyDSpacePageComponent,
|
||||||
MyDSpaceResultsComponent,
|
MyDSpaceResultsComponent,
|
||||||
ItemMyDSpaceResultListElementComponent,
|
WorkspaceItemSearchResultListElementComponent,
|
||||||
WorkspaceitemMyDSpaceResultListElementComponent,
|
WorkflowItemSearchResultListElementComponent,
|
||||||
WorkflowitemMyDSpaceResultListElementComponent,
|
ClaimedSearchResultListElementComponent,
|
||||||
ClaimedMyDSpaceResultListElementComponent,
|
PoolSearchResultListElementComponent,
|
||||||
PoolMyDSpaceResultListElementComponent,
|
ItemSearchResultDetailElementComponent,
|
||||||
ItemMyDSpaceResultDetailElementComponent,
|
WorkspaceItemSearchResultDetailElementComponent,
|
||||||
WorkspaceitemMyDSpaceResultDetailElementComponent,
|
WorkflowItemSearchResultDetailElementComponent,
|
||||||
WorkflowitemMyDSpaceResultDetailElementComponent,
|
ClaimedTaskSearchResultDetailElementComponent,
|
||||||
ClaimedMyDSpaceResultDetailElementComponent,
|
PoolSearchResultDetailElementComponent,
|
||||||
PoolMyDSpaceResultDetailElementComponent,
|
MyDSpaceNewSubmissionComponent,
|
||||||
MyDSpaceNewSubmissionComponent
|
ItemSearchResultListElementSubmissionComponent
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
MyDSpaceGuard,
|
MyDSpaceGuard,
|
||||||
MyDSpaceConfigurationService
|
MyDSpaceConfigurationService
|
||||||
],
|
],
|
||||||
entryComponents: [
|
entryComponents: [
|
||||||
ItemMyDSpaceResultListElementComponent,
|
SearchResultListElementComponent,
|
||||||
WorkspaceitemMyDSpaceResultListElementComponent,
|
WorkspaceItemSearchResultListElementComponent,
|
||||||
WorkflowitemMyDSpaceResultListElementComponent,
|
WorkflowItemSearchResultListElementComponent,
|
||||||
ClaimedMyDSpaceResultListElementComponent,
|
ClaimedSearchResultListElementComponent,
|
||||||
PoolMyDSpaceResultListElementComponent,
|
PoolSearchResultListElementComponent,
|
||||||
ItemMyDSpaceResultDetailElementComponent,
|
ItemSearchResultDetailElementComponent,
|
||||||
WorkspaceitemMyDSpaceResultDetailElementComponent,
|
WorkspaceItemSearchResultDetailElementComponent,
|
||||||
WorkflowitemMyDSpaceResultDetailElementComponent,
|
WorkflowItemSearchResultDetailElementComponent,
|
||||||
ClaimedMyDSpaceResultDetailElementComponent,
|
ClaimedTaskSearchResultDetailElementComponent,
|
||||||
PoolMyDSpaceResultDetailElementComponent
|
PoolSearchResultDetailElementComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@@ -1,22 +0,0 @@
|
|||||||
import { DSpaceObject } from '../core/shared/dspace-object.model';
|
|
||||||
import { MetadataMap } from '../core/shared/metadata.models';
|
|
||||||
import { ListableObject } from '../shared/object-collection/shared/listable-object.model';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a search result object of a certain (<T>) DSpaceObject
|
|
||||||
*/
|
|
||||||
export class MyDSpaceResult<T extends DSpaceObject> implements ListableObject {
|
|
||||||
/**
|
|
||||||
* The DSpaceObject that was found
|
|
||||||
*/
|
|
||||||
indexableObject: T;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The metadata that was used to find this item, hithighlighted
|
|
||||||
*/
|
|
||||||
hitHighlights: MetadataMap;
|
|
||||||
|
|
||||||
getRenderType(): string {
|
|
||||||
return this.indexableObject.getRenderType() + 'MyDSpaceResult';
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,13 +1,12 @@
|
|||||||
import { Component, Input } from '@angular/core';
|
import { Component, Input } from '@angular/core';
|
||||||
|
|
||||||
import { RemoteData } from '../../core/data/remote-data';
|
import { RemoteData } from '../../core/data/remote-data';
|
||||||
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
import { DSpaceObject } from '../../core/shared/dspace-object.model';
|
||||||
import { fadeIn, fadeInOut } from '../../shared/animations/fade';
|
import { fadeIn, fadeInOut } from '../../shared/animations/fade';
|
||||||
import { MyDSpaceResult } from '../my-dspace-result.model';
|
|
||||||
import { SearchOptions } from '../../+search-page/search-options.model';
|
import { SearchOptions } from '../../+search-page/search-options.model';
|
||||||
import { PaginatedList } from '../../core/data/paginated-list';
|
import { PaginatedList } from '../../core/data/paginated-list';
|
||||||
import { ViewMode } from '../../core/shared/view-mode.model';
|
import { ViewMode } from '../../core/shared/view-mode.model';
|
||||||
import { isEmpty } from '../../shared/empty.util';
|
import { isEmpty } from '../../shared/empty.util';
|
||||||
|
import { SearchResult } from '../../+search-page/search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component that represents all results for mydspace page
|
* Component that represents all results for mydspace page
|
||||||
@@ -25,7 +24,7 @@ export class MyDSpaceResultsComponent {
|
|||||||
/**
|
/**
|
||||||
* The actual search result objects
|
* The actual search result objects
|
||||||
*/
|
*/
|
||||||
@Input() searchResults: RemoteData<PaginatedList<MyDSpaceResult<DSpaceObject>>>;
|
@Input() searchResults: RemoteData<PaginatedList<SearchResult<DSpaceObject>>>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The current configuration of the search
|
* The current configuration of the search
|
||||||
|
@@ -12,19 +12,13 @@ const searchResultMap = new Map();
|
|||||||
* @param {GenericConstructor<ListableObject>} domainConstructor The constructor of the DSpaceObject
|
* @param {GenericConstructor<ListableObject>} domainConstructor The constructor of the DSpaceObject
|
||||||
* @returns Decorator function that performs the actual mapping on initialization of the component
|
* @returns Decorator function that performs the actual mapping on initialization of the component
|
||||||
*/
|
*/
|
||||||
export function searchResultFor(domainConstructor: GenericConstructor<ListableObject>, configuration: string = null) {
|
export function searchResultFor(domainConstructor: GenericConstructor<ListableObject>) {
|
||||||
return function decorator(searchResult: any) {
|
return function decorator(searchResult: any) {
|
||||||
if (!searchResult) {
|
if (!searchResult) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isNull(configuration)) {
|
searchResultMap.set(domainConstructor, searchResult);
|
||||||
searchResultMap.set(domainConstructor, searchResult);
|
|
||||||
} else {
|
|
||||||
if (!searchResultMap.get(configuration)) {
|
|
||||||
searchResultMap.set(configuration, new Map());
|
|
||||||
}
|
|
||||||
searchResultMap.get(configuration).set(domainConstructor, searchResult);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,10 +27,6 @@ export function searchResultFor(domainConstructor: GenericConstructor<ListableOb
|
|||||||
* @param {GenericConstructor<ListableObject>} domainConstructor The DSpaceObject's constructor for which the search result component is requested
|
* @param {GenericConstructor<ListableObject>} domainConstructor The DSpaceObject's constructor for which the search result component is requested
|
||||||
* @returns The component's constructor that matches the given DSpaceObject
|
* @returns The component's constructor that matches the given DSpaceObject
|
||||||
*/
|
*/
|
||||||
export function getSearchResultFor(domainConstructor: GenericConstructor<ListableObject>, configuration: string = null) {
|
export function getSearchResultFor(domainConstructor: GenericConstructor<ListableObject>) {
|
||||||
if (isNull(configuration) || configuration === 'default' || hasNoValue(searchResultMap.get(configuration))) {
|
|
||||||
return searchResultMap.get(domainConstructor);
|
return searchResultMap.get(domainConstructor);
|
||||||
} else {
|
|
||||||
return searchResultMap.get(configuration).get(domainConstructor);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -158,7 +158,7 @@ export class SearchService implements OnDestroy {
|
|||||||
let co = DSpaceObject;
|
let co = DSpaceObject;
|
||||||
if (dsos.payload[index]) {
|
if (dsos.payload[index]) {
|
||||||
const constructor: GenericConstructor<ListableObject> = dsos.payload[index].constructor as GenericConstructor<ListableObject>;
|
const constructor: GenericConstructor<ListableObject> = dsos.payload[index].constructor as GenericConstructor<ListableObject>;
|
||||||
co = getSearchResultFor(constructor, searchOptions.configuration);
|
co = getSearchResultFor(constructor);
|
||||||
return Object.assign(new co(), object, {
|
return Object.assign(new co(), object, {
|
||||||
indexableObject: dsos.payload[index]
|
indexableObject: dsos.payload[index]
|
||||||
});
|
});
|
||||||
|
@@ -1,32 +1,30 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<div>
|
||||||
<div>
|
<ds-grid-thumbnail [thumbnail]="dso.getThumbnail() | async">
|
||||||
<ds-grid-thumbnail [thumbnail]="item.getThumbnail() | async">
|
</ds-grid-thumbnail>
|
||||||
</ds-grid-thumbnail>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('dc.title')"></h4>
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('dc.title')"></h4>
|
</ds-truncatable-part>
|
||||||
|
<p *ngIf="dso.hasMetadata('creativework.datePublished')" class="item-date card-text text-muted">
|
||||||
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
|
<span [innerHTML]="firstMetadataValue('creativework.datePublished')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('creativework.datePublished')" class="item-date card-text text-muted">
|
</p>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<p *ngIf="dso.hasMetadata('journal.title')" class="item-journal-title card-text">
|
||||||
<span [innerHTML]="firstMetadataValue('creativework.datePublished')"></span>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
</ds-truncatable-part>
|
<span [innerHTML]="firstMetadataValue('journal.title')"></span>
|
||||||
</p>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('journal.title')" class="item-journal-title card-text">
|
</p>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<div class="text-center">
|
||||||
<span [innerHTML]="firstMetadataValue('journal.title')"></span>
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
</ds-truncatable-part>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</p>
|
|
||||||
<div class="text-center">
|
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</div>
|
||||||
</ng-container>
|
</ds-truncatable>
|
||||||
|
@@ -1,32 +1,30 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<div>
|
<div>
|
||||||
<ds-grid-thumbnail [thumbnail]="this.item.getThumbnail() | async">
|
<ds-grid-thumbnail [thumbnail]="this.dso.getThumbnail() | async">
|
||||||
</ds-grid-thumbnail>
|
</ds-grid-thumbnail>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('dc.title')"></h4>
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('dc.title')"></h4>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('creativework.datePublished')" class="item-date card-text text-muted">
|
<p *ngIf="dso.hasMetadata('creativework.datePublished')" class="item-date card-text text-muted">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<span [innerHTML]="firstMetadataValue('creativework.datePublished')"></span>
|
<span [innerHTML]="firstMetadataValue('creativework.datePublished')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<p *ngIf="item.hasMetadata('dc.description')" class="item-description card-text">
|
<p *ngIf="dso.hasMetadata('dc.description')" class="item-description card-text">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
<span [innerHTML]="firstMetadataValue('dc.description')"></span>
|
<span [innerHTML]="firstMetadataValue('dc.description')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
@@ -1,37 +1,35 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<div>
|
||||||
<div>
|
<ds-grid-thumbnail [thumbnail]="this.dso.getThumbnail() | async">
|
||||||
<ds-grid-thumbnail [thumbnail]="this.item.getThumbnail() | async">
|
</ds-grid-thumbnail>
|
||||||
</ds-grid-thumbnail>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('dc.title')"></h4>
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('dc.title')"></h4>
|
</ds-truncatable-part>
|
||||||
</ds-truncatable-part>
|
<p *ngIf="dso.hasMetadata('creativework.editor')"
|
||||||
<p *ngIf="item.hasMetadata('creativework.editor')"
|
class="item-publisher card-text text-muted">
|
||||||
class="item-publisher card-text text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<span class="item-editor">{{dso.firstMetadataValue('creativework.editor')}}</span>
|
||||||
<span class="item-editor">{{item.firstMetadataValue('creativework.editor')}}</span>
|
<span *ngIf="dso.hasMetadata('creativework.publisher')" class="item-publisher">
|
||||||
<span *ngIf="item.hasMetadata('creativework.publisher')" class="item-publisher">
|
|
||||||
<span>, </span>
|
<span>, </span>
|
||||||
{{item.firstMetadataValue('creativework.publisher')}}
|
{{dso.firstMetadataValue('creativework.publisher')}}
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<p *ngIf="item.hasMetadata('dc.description')" class="item-description card-text">
|
<p *ngIf="dso.hasMetadata('dc.description')" class="item-description card-text">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
<span [innerHTML]="firstMetadataValue('dc.description')"></span>
|
<span [innerHTML]="firstMetadataValue('dc.description')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</div>
|
||||||
</ng-container>
|
</ds-truncatable>
|
||||||
|
@@ -1,17 +1,16 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<a
|
||||||
<a
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
||||||
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
<span class="text-muted">
|
||||||
<span class="text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<span *ngIf="dso.allMetadata(['publicationvolume.volumeNumber']).length > 0"
|
||||||
<span *ngIf="item.allMetadata(['publicationvolume.volumeNumber']).length > 0"
|
|
||||||
class="item-list-journal-issues">
|
class="item-list-journal-issues">
|
||||||
<span *ngFor="let value of allMetadataValues(['publicationvolume.volumeNumber']); let last=last;">
|
<span *ngFor="let value of allMetadataValues(['publicationvolume.volumeNumber']); let last=last;">
|
||||||
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
||||||
</span>
|
</span>
|
||||||
<span *ngIf="item.allMetadata(['publicationissue.issueNumber']).length > 0"
|
<span *ngIf="dso.allMetadata(['publicationissue.issueNumber']).length > 0"
|
||||||
class="item-list-journal-issue-numbers">
|
class="item-list-journal-issue-numbers">
|
||||||
<span *ngFor="let value of allMetadataValues(['publicationissue.issueNumber']); let last=last;">
|
<span *ngFor="let value of allMetadataValues(['publicationissue.issueNumber']); let last=last;">
|
||||||
<span> - </span><span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
<span> - </span><span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
||||||
@@ -20,5 +19,4 @@
|
|||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
||||||
|
@@ -1,18 +1,17 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<a
|
||||||
<a
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
||||||
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
<span class="text-muted">
|
||||||
<span class="text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<span *ngIf="dso.allMetadata(['journal.title']).length > 0"
|
||||||
<span *ngIf="item.allMetadata(['journal.title']).length > 0"
|
|
||||||
class="item-list-journal-volumes">
|
class="item-list-journal-volumes">
|
||||||
<span *ngFor="let value of allMetadataValues(['journal.title']); let last=last;">
|
<span *ngFor="let value of allMetadataValues(['journal.title']); let last=last;">
|
||||||
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span *ngIf="item.allMetadata(['publicationvolume.volumeNumber']).length > 0"
|
<span *ngIf="dso.allMetadata(['publicationvolume.volumeNumber']).length > 0"
|
||||||
class="item-list-journal-volume-identifiers">
|
class="item-list-journal-volume-identifiers">
|
||||||
<span *ngFor="let value of allMetadataValues(['publicationvolume.volumeNumber']); let last=last;">
|
<span *ngFor="let value of allMetadataValues(['publicationvolume.volumeNumber']); let last=last;">
|
||||||
<span> (</span><span [innerHTML]="value"><span [innerHTML]="value"></span></span><span>)</span>
|
<span> (</span><span [innerHTML]="value"><span [innerHTML]="value"></span></span><span>)</span>
|
||||||
@@ -20,5 +19,4 @@
|
|||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<a
|
||||||
<a
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
||||||
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
<span class="text-muted">
|
||||||
<span class="text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<span *ngIf="dso.allMetadata(['creativeworkseries.issn']).length > 0"
|
||||||
<span *ngIf="item.allMetadata(['creativeworkseries.issn']).length > 0"
|
|
||||||
class="item-list-journals">
|
class="item-list-journals">
|
||||||
<span *ngFor="let value of allMetadataValues(['creativeworkseries.issn']); let last=last;">
|
<span *ngFor="let value of allMetadataValues(['creativeworkseries.issn']); let last=last;">
|
||||||
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
||||||
@@ -14,5 +13,4 @@
|
|||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
||||||
|
@@ -1,37 +1,35 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<div>
|
||||||
<div>
|
<ds-grid-thumbnail [thumbnail]="dso.getThumbnail() | async">
|
||||||
<ds-grid-thumbnail [thumbnail]="item.getThumbnail() | async">
|
</ds-grid-thumbnail>
|
||||||
</ds-grid-thumbnail>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('organization.legalName')"></h4>
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('organization.legalName')"></h4>
|
</ds-truncatable-part>
|
||||||
|
<p *ngIf="dso.hasMetadata('organization.foundingDate')" class="dso-date card-text text-muted">
|
||||||
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
|
<span [innerHTML]="firstMetadataValue('organization.foundingDate')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('organization.foundingDate')" class="item-date card-text text-muted">
|
</p>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<p *ngIf="dso.hasMetadata('organization.address.addressCountry')"
|
||||||
<span [innerHTML]="firstMetadataValue('organization.foundingDate')"></span>
|
class="dso-location card-text">
|
||||||
</ds-truncatable-part>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
</p>
|
<span class="dso-country">{{dso.firstMetadataValue('organization.address.addressCountry')}}</span>
|
||||||
<p *ngIf="item.hasMetadata('organization.address.addressCountry')"
|
<span *ngIf="dso.hasMetadata('organization.address.addressLocality')" class="dso-city">
|
||||||
class="item-location card-text">
|
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
|
||||||
<span class="item-country">{{item.firstMetadataValue('organization.address.addressCountry')}}</span>
|
|
||||||
<span *ngIf="item.hasMetadata('organization.address.addressLocality')" class="item-city">
|
|
||||||
<span>, </span>
|
<span>, </span>
|
||||||
{{item.firstMetadataValue('organization.address.addressLocality')}}
|
{{dso.firstMetadataValue('organization.address.addressLocality')}}
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</div>
|
||||||
</ng-container>
|
</ds-truncatable>
|
||||||
|
@@ -1,32 +1,30 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<div>
|
||||||
<div>
|
<ds-grid-thumbnail [thumbnail]="this.dso.getThumbnail() | async">
|
||||||
<ds-grid-thumbnail [thumbnail]="this.item.getThumbnail() | async">
|
</ds-grid-thumbnail>
|
||||||
</ds-grid-thumbnail>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('person.familyName') + ', ' + dso.firstMetadataValue('person.givenName')"></h4>
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('person.familyName') + ', ' + item.firstMetadataValue('person.givenName')"></h4>
|
</ds-truncatable-part>
|
||||||
|
<p *ngIf="dso.hasMetadata('person.email')" class="dso-email card-text text-muted">
|
||||||
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
|
<span [innerHTML]="firstMetadataValue('person.email')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('person.email')" class="item-email card-text text-muted">
|
</p>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<p *ngIf="dso.hasMetadata('person.jobTitle')" class="dso-jobtitle card-text">
|
||||||
<span [innerHTML]="firstMetadataValue('person.email')"></span>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
</ds-truncatable-part>
|
<span [innerHTML]="firstMetadataValue('person.jobTitle')"></span>
|
||||||
</p>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('person.jobTitle')" class="item-jobtitle card-text">
|
</p>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<div class="text-center">
|
||||||
<span [innerHTML]="firstMetadataValue('person.jobTitle')"></span>
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
</ds-truncatable-part>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</p>
|
|
||||||
<div class="text-center">
|
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</div>
|
||||||
</ng-container>
|
</ds-truncatable>
|
||||||
|
@@ -1,27 +1,25 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<div>
|
||||||
<div>
|
<ds-grid-thumbnail [thumbnail]="dso.getThumbnail() | async">
|
||||||
<ds-grid-thumbnail [thumbnail]="item.getThumbnail() | async">
|
</ds-grid-thumbnail>
|
||||||
</ds-grid-thumbnail>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('dc.title')"></h4>
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('dc.title')"></h4>
|
</ds-truncatable-part>
|
||||||
|
<p *ngIf="dso.hasMetadata('dc.description')" class="dso-description card-text text-muted">
|
||||||
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
|
<span [innerHTML]="firstMetadataValue('dc.description')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
<p *ngIf="item.hasMetadata('dc.description')" class="item-description card-text text-muted">
|
</p>
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<div class="text-center">
|
||||||
<span [innerHTML]="firstMetadataValue('dc.description')"></span>
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
</ds-truncatable-part>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</p>
|
|
||||||
<div class="text-center">
|
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</div>
|
||||||
</ng-container>
|
</ds-truncatable>
|
||||||
|
@@ -1,11 +1,13 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { listableObjectComponent } from '../../../../shared/object-collection/shared/listable-object/listable-object.decorator';
|
import { DEFAULT_ITEM_TYPE, listableObjectComponent } from '../../../../shared/object-collection/shared/listable-object/listable-object.decorator';
|
||||||
import { Context } from '../../../../core/shared/context.model';
|
import { Context } from '../../../../core/shared/context.model';
|
||||||
import { AbstractListableElementComponent } from '../../../../shared/object-collection/shared/object-collection-element/abstract-listable-element.component';
|
import { AbstractListableElementComponent } from '../../../../shared/object-collection/shared/object-collection-element/abstract-listable-element.component';
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
|
import { metadataRepresentationComponent } from '../../../../shared/metadata-representation/metadata-representation.decorator';
|
||||||
|
import { MetadataRepresentationType } from '../../../../core/shared/metadata-representation/metadata-representation.model';
|
||||||
|
|
||||||
@listableObjectComponent('OrgUnit', ViewMode.ListElement, Context.ItemPage)
|
@metadataRepresentationComponent('OrgUnit', MetadataRepresentationType.Item)
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-orgunit-item-page-list-element',
|
selector: 'ds-orgunit-item-page-list-element',
|
||||||
templateUrl: './orgunit-item-page-list-element.component.html'
|
templateUrl: './orgunit-item-page-list-element.component.html'
|
||||||
|
@@ -1,11 +1,10 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
|
||||||
import { Context } from '../../../../core/shared/context.model';
|
|
||||||
import { listableObjectComponent } from '../../../../shared/object-collection/shared/listable-object/listable-object.decorator';
|
|
||||||
import { AbstractListableElementComponent } from '../../../../shared/object-collection/shared/object-collection-element/abstract-listable-element.component';
|
import { AbstractListableElementComponent } from '../../../../shared/object-collection/shared/object-collection-element/abstract-listable-element.component';
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
|
import { metadataRepresentationComponent } from '../../../../shared/metadata-representation/metadata-representation.decorator';
|
||||||
|
import { MetadataRepresentationType } from '../../../../core/shared/metadata-representation/metadata-representation.model';
|
||||||
|
|
||||||
@listableObjectComponent('OrgUnit', ViewMode.ListElement, Context.ItemPage)
|
@metadataRepresentationComponent('Person', MetadataRepresentationType.Item)
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-person-item-page-list-element',
|
selector: 'ds-person-item-page-list-element',
|
||||||
templateUrl: './person-item-page-list-element.component.html'
|
templateUrl: './person-item-page-list-element.component.html'
|
||||||
|
@@ -1,18 +1,16 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<a
|
||||||
<a
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[innerHTML]="firstMetadataValue('organization.legalName')"></a>
|
||||||
[innerHTML]="firstMetadataValue('organization.legalName')"></a>
|
<span class="text-muted">
|
||||||
<span class="text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<span *ngIf="dso.allMetadata(['dc.description']).length > 0"
|
||||||
<span *ngIf="item.allMetadata(['dc.description']).length > 0"
|
|
||||||
class="item-list-orgunit-description">
|
class="item-list-orgunit-description">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3"><span
|
<ds-truncatable-part [id]="dso.id" [minLines]="3"><span
|
||||||
[innerHTML]="firstMetadataValue('dc.description')"></span>
|
[innerHTML]="firstMetadataValue('dc.description')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<a
|
||||||
<a
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[innerHTML]="firstMetadataValue('person.familyName') + ', ' + firstMetadataValue('person.givenName')"></a>
|
||||||
[innerHTML]="firstMetadataValue('person.familyName') + ', ' + firstMetadataValue('person.givenName')"></a>
|
<span class="text-muted">
|
||||||
<span class="text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<span *ngIf="dso.allMetadata(['person.jobTitle']).length > 0"
|
||||||
<span *ngIf="item.allMetadata(['person.jobTitle']).length > 0"
|
|
||||||
class="item-list-job-title">
|
class="item-list-job-title">
|
||||||
<span *ngFor="let value of allMetadataValues(['person.jobTitle']); let last=last;">
|
<span *ngFor="let value of allMetadataValues(['person.jobTitle']); let last=last;">
|
||||||
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
<span [innerHTML]="value"><span [innerHTML]="value"></span></span>
|
||||||
@@ -14,5 +13,4 @@
|
|||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
||||||
|
@@ -1,12 +1,11 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
|
||||||
<a
|
<a
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
||||||
<!--<span class="text-muted">-->
|
<!--<span class="text-muted">-->
|
||||||
<!--<ds-truncatable-part [id]="item.id" [minLines]="1">-->
|
<!--<ds-truncatable-part [id]="dso.id" [minLines]="1">-->
|
||||||
<!--<span *ngIf="item.allMetadata(['project.identifier.status']).length > 0"-->
|
<!--<span *ngIf="dso.allMetadata(['project.identifier.status']).length > 0"-->
|
||||||
<!--class="item-list-status">-->
|
<!--class="item-list-status">-->
|
||||||
<!--<span *ngFor="let value of allMetadataValues(['project.identifier.status']); let last=last;">-->
|
<!--<span *ngFor="let value of allMetadataValues(['project.identifier.status']); let last=last;">-->
|
||||||
<!--<span [innerHTML]="value"><span [innerHTML]="value"></span></span>-->
|
<!--<span [innerHTML]="value"><span [innerHTML]="value"></span></span>-->
|
||||||
@@ -15,4 +14,3 @@
|
|||||||
<!--</ds-truncatable-part>-->
|
<!--</ds-truncatable-part>-->
|
||||||
<!--</span>-->
|
<!--</span>-->
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
@@ -6,6 +6,6 @@ import { searchResultFor } from '../../../+search-page/search-service/search-res
|
|||||||
/**
|
/**
|
||||||
* Represents a search result object of a ClaimedTask object
|
* Represents a search result object of a ClaimedTask object
|
||||||
*/
|
*/
|
||||||
@searchResultFor(ClaimedTask, MyDSpaceConfigurationValueType.Workflow)
|
@searchResultFor(ClaimedTask)
|
||||||
export class ClaimedTaskMyDSpaceResult extends SearchResult<ClaimedTask> {
|
export class ClaimedTaskSearchResult extends SearchResult<ClaimedTask> {
|
||||||
}
|
}
|
@@ -1,14 +0,0 @@
|
|||||||
import { Item } from '../../../core/shared/item.model';
|
|
||||||
import { SearchResult } from '../../../+search-page/search-result.model';
|
|
||||||
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
|
|
||||||
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a search result object of a Item object
|
|
||||||
*/
|
|
||||||
@searchResultFor(Item, MyDSpaceConfigurationValueType.Workspace)
|
|
||||||
export class ItemMyDSpaceResult extends SearchResult<Item> {
|
|
||||||
getRenderType(): string {
|
|
||||||
return ItemMyDSpaceResult.name;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -41,6 +41,7 @@ export class ListableObjectComponentLoaderComponent implements OnInit {
|
|||||||
|
|
||||||
const componentRef = viewContainerRef.createComponent(componentFactory);
|
const componentRef = viewContainerRef.createComponent(componentFactory);
|
||||||
(<Component>componentRef.instance as any).object = this.object;
|
(<Component>componentRef.instance as any).object = this.object;
|
||||||
|
(<Component>componentRef.instance as any).index = this.index;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -6,6 +6,6 @@ import { searchResultFor } from '../../../+search-page/search-service/search-res
|
|||||||
/**
|
/**
|
||||||
* Represents a search result object of a PoolTask object
|
* Represents a search result object of a PoolTask object
|
||||||
*/
|
*/
|
||||||
@searchResultFor(PoolTask, MyDSpaceConfigurationValueType.Workflow)
|
@searchResultFor(PoolTask)
|
||||||
export class PoolTaskMyDSpaceResult extends SearchResult<PoolTask> {
|
export class PoolTaskSearchResult extends SearchResult<PoolTask> {
|
||||||
}
|
}
|
@@ -1,11 +1,10 @@
|
|||||||
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../core/submission/models/workflowitem.model';
|
||||||
import { SearchResult } from '../../../+search-page/search-result.model';
|
import { SearchResult } from '../../../+search-page/search-result.model';
|
||||||
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
|
|
||||||
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
|
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a search result object of a WorkflowItem object
|
* Represents a search result object of a WorkflowItem object
|
||||||
*/
|
*/
|
||||||
@searchResultFor(WorkflowItem, MyDSpaceConfigurationValueType.Workspace)
|
@searchResultFor(WorkflowItem)
|
||||||
export class WorkflowitemMyDSpaceResult extends SearchResult<WorkflowItem> {
|
export class WorkflowItemSearchResult extends SearchResult<WorkflowItem> {
|
||||||
}
|
}
|
@@ -1,11 +1,10 @@
|
|||||||
import { WorkspaceItem } from '../../../core/submission/models/workspaceitem.model';
|
import { WorkspaceItem } from '../../../core/submission/models/workspaceitem.model';
|
||||||
import { MyDSpaceConfigurationValueType } from '../../../+my-dspace-page/my-dspace-configuration-value-type';
|
|
||||||
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
|
import { searchResultFor } from '../../../+search-page/search-service/search-result-element-decorator';
|
||||||
import { SearchResult } from '../../../+search-page/search-result.model';
|
import { SearchResult } from '../../../+search-page/search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a search result object of a WorkspaceItem object
|
* Represents a search result object of a WorkspaceItem object
|
||||||
*/
|
*/
|
||||||
@searchResultFor(WorkspaceItem, MyDSpaceConfigurationValueType.Workspace)
|
@searchResultFor(WorkspaceItem)
|
||||||
export class WorkspaceitemMyDSpaceResult extends SearchResult<WorkspaceItem> {
|
export class WorkspaceItemSearchResult extends SearchResult<WorkspaceItem> {
|
||||||
}
|
}
|
@@ -5,20 +5,20 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { ClaimedMyDSpaceResultDetailElementComponent } from './claimed-my-dspace-result-detail-element.component';
|
import { ClaimedTaskSearchResultDetailElementComponent } from './claimed-task-search-result-detail-element.component';
|
||||||
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
||||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: ClaimedMyDSpaceResultDetailElementComponent;
|
let component: ClaimedTaskSearchResultDetailElementComponent;
|
||||||
let fixture: ComponentFixture<ClaimedMyDSpaceResultDetailElementComponent>;
|
let fixture: ComponentFixture<ClaimedTaskSearchResultDetailElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: ClaimedTaskMyDSpaceResult = new ClaimedTaskMyDSpaceResult();
|
const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -59,19 +59,19 @@ describe('ClaimedMyDSpaceResultDetailElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [ClaimedMyDSpaceResultDetailElementComponent],
|
declarations: [ClaimedTaskSearchResultDetailElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(ClaimedMyDSpaceResultDetailElementComponent, {
|
}).overrideComponent(ClaimedTaskSearchResultDetailElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(ClaimedMyDSpaceResultDetailElementComponent);
|
fixture = TestBed.createComponent(ClaimedTaskSearchResultDetailElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -6,27 +6,24 @@ import { find } from 'rxjs/operators';
|
|||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
import { isNotUndefined } from '../../../empty.util';
|
||||||
import { ListableObject } from '../../../object-collection/shared/listable-object.model';
|
|
||||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
||||||
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
import { SearchResultDetailElementComponent } from '../search-result-detail-element.component';
|
||||||
import { MyDSpaceResultDetailElementComponent } from '../my-dspace-result-detail-element.component';
|
|
||||||
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 { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||||
import { Context } from '../../../../core/shared/context.model';
|
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component renders claimed task object for the mydspace result in the detail view.
|
* This component renders claimed task object for the mydspace result in the detail view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-claimed-my-dspace-result-detail-element',
|
selector: 'ds-claimed-task-search-result-detail-element',
|
||||||
styleUrls: ['../my-dspace-result-detail-element.component.scss'],
|
styleUrls: ['../search-result-detail-element.component.scss'],
|
||||||
templateUrl: './claimed-my-dspace-result-detail-element.component.html'
|
templateUrl: './claimed-task-search-result-detail-element.component.html'
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(ClaimedTaskMyDSpaceResult.name, ViewMode.DetailedListElement)
|
@listableObjectComponent(ClaimedTaskSearchResult.name, ViewMode.DetailedListElement)
|
||||||
@listableObjectComponent(ClaimedTask.name, ViewMode.DetailedListElement)
|
export class ClaimedTaskSearchResultDetailElementComponent extends SearchResultDetailElementComponent<ClaimedTaskSearchResult, ClaimedTask> {
|
||||||
export class ClaimedMyDSpaceResultDetailElementComponent extends MyDSpaceResultDetailElementComponent<ClaimedTaskMyDSpaceResult, ClaimedTask> {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A boolean representing if to show submitter information
|
* A boolean representing if to show submitter information
|
@@ -1,8 +1,8 @@
|
|||||||
import { Component, Input } from '@angular/core';
|
import { Component, Input } from '@angular/core';
|
||||||
|
|
||||||
import { Metadata } from '../../../../../core/shared/metadata.utils';
|
import { Metadata } from '../../../../../core/shared/metadata.utils';
|
||||||
import { MyDSpaceResult } from '../../../../../+my-dspace-page/my-dspace-result.model';
|
|
||||||
import { Item } from '../../../../../core/shared/item.model';
|
import { Item } from '../../../../../core/shared/item.model';
|
||||||
|
import { SearchResult } from '../../../../../+search-page/search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component show values for the given item metadata
|
* This component show values for the given item metadata
|
||||||
@@ -21,7 +21,7 @@ export class ItemDetailPreviewFieldComponent {
|
|||||||
/**
|
/**
|
||||||
* The mydspace result object
|
* The mydspace result object
|
||||||
*/
|
*/
|
||||||
@Input() object: MyDSpaceResult<any>;
|
@Input() object: SearchResult<any>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The metadata label
|
* The metadata label
|
||||||
|
@@ -6,7 +6,7 @@ import { Item } from '../../../../core/shared/item.model';
|
|||||||
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 { fadeInOut } from '../../../animations/fade';
|
import { fadeInOut } from '../../../animations/fade';
|
||||||
import { Bitstream } from '../../../../core/shared/bitstream.model';
|
import { Bitstream } from '../../../../core/shared/bitstream.model';
|
||||||
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 detail view.
|
* This component show metadata for the given item object in the detail view.
|
||||||
@@ -27,7 +27,7 @@ export class ItemDetailPreviewComponent {
|
|||||||
/**
|
/**
|
||||||
* The mydspace result object
|
* The mydspace result object
|
||||||
*/
|
*/
|
||||||
@Input() object: MyDSpaceResult<any>;
|
@Input() object: SearchResult<any>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represent item's status
|
* Represent item's status
|
||||||
|
@@ -1,27 +0,0 @@
|
|||||||
import { Component } from '@angular/core';
|
|
||||||
|
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
|
||||||
import { ItemMyDSpaceResult } from '../../../object-collection/shared/item-my-dspace-result.model';
|
|
||||||
import { MyDSpaceResultDetailElementComponent } from '../my-dspace-result-detail-element.component';
|
|
||||||
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
|
||||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This component renders item object for the mydspace result in the detail view.
|
|
||||||
*/
|
|
||||||
@Component({
|
|
||||||
selector: 'ds-workspaceitem-my-dspace-result-detail-element',
|
|
||||||
styleUrls: ['../my-dspace-result-detail-element.component.scss', './item-my-dspace-result-detail-element.component.scss'],
|
|
||||||
templateUrl: './item-my-dspace-result-detail-element.component.html'
|
|
||||||
})
|
|
||||||
|
|
||||||
@listableObjectComponent(ItemMyDSpaceResult.name, ViewMode.DetailedListElement)
|
|
||||||
export class ItemMyDSpaceResultDetailElementComponent extends MyDSpaceResultDetailElementComponent<ItemMyDSpaceResult, Item> {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represent item's status
|
|
||||||
*/
|
|
||||||
public status = MyDspaceItemStatusType.ARCHIVED;
|
|
||||||
|
|
||||||
}
|
|
@@ -5,16 +5,16 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { ItemMyDSpaceResultDetailElementComponent } from './item-my-dspace-result-detail-element.component';
|
import { ItemSearchResultDetailElementComponent } from './item-search-result-detail-element.component';
|
||||||
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 { ItemMyDSpaceResult } from '../../../object-collection/shared/item-my-dspace-result.model';
|
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
|
||||||
|
|
||||||
let component: ItemMyDSpaceResultDetailElementComponent;
|
let component: ItemSearchResultDetailElementComponent;
|
||||||
let fixture: ComponentFixture<ItemMyDSpaceResultDetailElementComponent>;
|
let fixture: ComponentFixture<ItemSearchResultDetailElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: ItemMyDSpaceResult = new ItemMyDSpaceResult();
|
const mockResultObject: ItemSearchResult = new ItemSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
mockResultObject.indexableObject = Object.assign(new Item(), {
|
mockResultObject.indexableObject = Object.assign(new Item(), {
|
||||||
@@ -51,19 +51,19 @@ describe('ItemMyDSpaceResultDetailElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [ItemMyDSpaceResultDetailElementComponent],
|
declarations: [ItemSearchResultDetailElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(ItemMyDSpaceResultDetailElementComponent, {
|
}).overrideComponent(ItemSearchResultDetailElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(ItemMyDSpaceResultDetailElementComponent);
|
fixture = TestBed.createComponent(ItemSearchResultDetailElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -0,0 +1,27 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
|
import { SearchResultDetailElementComponent } from '../search-result-detail-element.component';
|
||||||
|
import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||||
|
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||||
|
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component renders item object for the mydspace result in the detail view.
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-item-search-result-detail-element',
|
||||||
|
styleUrls: ['../search-result-detail-element.component.scss', './item-search-result-detail-element.component.scss'],
|
||||||
|
templateUrl: './item-search-result-detail-element.component.html'
|
||||||
|
})
|
||||||
|
|
||||||
|
@listableObjectComponent('PublicationSearchResult', ViewMode.DetailedListElement)
|
||||||
|
export class ItemSearchResultDetailElementComponent extends SearchResultDetailElementComponent<ItemSearchResult, Item> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represent item's status
|
||||||
|
*/
|
||||||
|
public status = MyDspaceItemStatusType.ARCHIVED;
|
||||||
|
|
||||||
|
}
|
@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { PoolMyDSpaceResultDetailElementComponent } from './pool-my-dspace-result-detail-element.component';
|
import { PoolSearchResultDetailElementComponent } from './pool-my-dspace-result-detail-element.component';
|
||||||
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
||||||
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
||||||
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 { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: PoolMyDSpaceResultDetailElementComponent;
|
let component: PoolSearchResultDetailElementComponent;
|
||||||
let fixture: ComponentFixture<PoolMyDSpaceResultDetailElementComponent>;
|
let fixture: ComponentFixture<PoolSearchResultDetailElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: PoolTaskMyDSpaceResult = new PoolTaskMyDSpaceResult();
|
const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -58,19 +58,19 @@ describe('PoolMyDSpaceResultDetailElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [PoolMyDSpaceResultDetailElementComponent],
|
declarations: [PoolSearchResultDetailElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(PoolMyDSpaceResultDetailElementComponent, {
|
}).overrideComponent(PoolSearchResultDetailElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(PoolMyDSpaceResultDetailElementComponent);
|
fixture = TestBed.createComponent(PoolSearchResultDetailElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -4,27 +4,25 @@ import { Observable } from 'rxjs';
|
|||||||
import { find } from 'rxjs/operators';
|
import { find } from 'rxjs/operators';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
import { isNotUndefined } from '../../../empty.util';
|
||||||
import { ListableObject } from '../../../object-collection/shared/listable-object.model';
|
|
||||||
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
||||||
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
import { SearchResultDetailElementComponent } from '../search-result-detail-element.component';
|
||||||
import { MyDSpaceResultDetailElementComponent } from '../my-dspace-result-detail-element.component';
|
|
||||||
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 { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
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 { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component renders pool task object for the mydspace result in the detail view.
|
* This component renders pool task object for the mydspace result in the detail view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-pool-my-dspace-result-detail-element',
|
selector: 'ds-pool-search-result-detail-element',
|
||||||
styleUrls: ['../my-dspace-result-detail-element.component.scss'],
|
styleUrls: ['../search-result-detail-element.component.scss'],
|
||||||
templateUrl: './pool-my-dspace-result-detail-element.component.html',
|
templateUrl: './pool-search-result-detail-element.component.html',
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(PoolTaskMyDSpaceResult.name, ViewMode.DetailedListElement)
|
@listableObjectComponent(PoolTaskSearchResult.name, ViewMode.DetailedListElement)
|
||||||
@listableObjectComponent(PoolTask.name, ViewMode.DetailedListElement)
|
export class PoolSearchResultDetailElementComponent extends SearchResultDetailElementComponent<PoolTaskSearchResult, PoolTask> {
|
||||||
export class PoolMyDSpaceResultDetailElementComponent extends MyDSpaceResultDetailElementComponent<PoolTaskMyDSpaceResult, PoolTask> {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A boolean representing if to show submitter information
|
* A boolean representing if to show submitter information
|
@@ -1,30 +1,26 @@
|
|||||||
import { Component, Inject } from '@angular/core';
|
import { Component, OnInit } 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 { 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 { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
||||||
import { Metadata } from '../../../core/shared/metadata.utils';
|
import { Metadata } from '../../../core/shared/metadata.utils';
|
||||||
|
import { SearchResult } from '../../../+search-page/search-result.model';
|
||||||
|
import { hasValue } from '../../empty.util';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-my-dspace-result-detail-element',
|
selector: 'ds-search-result-detail-element',
|
||||||
template: ``
|
template: ``
|
||||||
})
|
})
|
||||||
export class MyDSpaceResultDetailElementComponent<T extends MyDSpaceResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> {
|
export class SearchResultDetailElementComponent<T extends SearchResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> implements OnInit {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The result element object
|
* The result element object
|
||||||
*/
|
*/
|
||||||
dso: K;
|
dso: K;
|
||||||
|
|
||||||
/**
|
ngOnInit(): void {
|
||||||
* Initialize instance variables
|
if (hasValue(this.object)) {
|
||||||
*
|
this.dso = this.object.indexableObject;
|
||||||
* @param {ListableObject} detailable
|
}
|
||||||
*/
|
|
||||||
public constructor() {
|
|
||||||
super();
|
|
||||||
this.dso = this.object.indexableObject;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { WorkflowitemMyDSpaceResultDetailElementComponent } from './workflowitem-my-dspace-result-detail-element.component';
|
import { WorkflowItemSearchResultDetailElementComponent } from './workflow-item-search-result-detail-element.component';
|
||||||
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
||||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: WorkflowitemMyDSpaceResultDetailElementComponent;
|
let component: WorkflowItemSearchResultDetailElementComponent;
|
||||||
let fixture: ComponentFixture<WorkflowitemMyDSpaceResultDetailElementComponent>;
|
let fixture: ComponentFixture<WorkflowItemSearchResultDetailElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: WorkflowitemMyDSpaceResult = new WorkflowitemMyDSpaceResult();
|
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -56,19 +56,19 @@ describe('WorkflowitemMyDSpaceResultDetailElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [WorkflowitemMyDSpaceResultDetailElementComponent],
|
declarations: [WorkflowItemSearchResultDetailElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(WorkflowitemMyDSpaceResultDetailElementComponent, {
|
}).overrideComponent(WorkflowItemSearchResultDetailElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(WorkflowitemMyDSpaceResultDetailElementComponent);
|
fixture = TestBed.createComponent(WorkflowItemSearchResultDetailElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -2,29 +2,27 @@ import { Component, Inject } from '@angular/core';
|
|||||||
|
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { ListableObject } from '../../../object-collection/shared/listable-object.model';
|
|
||||||
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
|
||||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { MyDSpaceResultDetailElementComponent } from '../my-dspace-result-detail-element.component';
|
import { SearchResultDetailElementComponent } from '../search-result-detail-element.component';
|
||||||
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 { Observable } from 'rxjs/internal/Observable';
|
import { Observable } from 'rxjs/internal/Observable';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { find } from 'rxjs/operators';
|
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/workflowitem-search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component renders workflowitem object for the mydspace result in the detail view.
|
* This component renders workflowitem object for the mydspace result in the detail view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-workflowitem-my-dspace-result-detail-element',
|
selector: 'ds-workflow-item-search-result-detail-element',
|
||||||
styleUrls: ['../my-dspace-result-detail-element.component.scss'],
|
styleUrls: ['../search-result-detail-element.component.scss'],
|
||||||
templateUrl: './workflowitem-my-dspace-result-detail-element.component.html',
|
templateUrl: './workflow-item-search-result-detail-element.component.html',
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(WorkflowitemMyDSpaceResult.name, ViewMode.DetailedListElement)
|
@listableObjectComponent(WorkflowItemSearchResult.name, ViewMode.DetailedListElement)
|
||||||
@listableObjectComponent(WorkflowItem.name, ViewMode.DetailedListElement)
|
export class WorkflowItemSearchResultDetailElementComponent extends SearchResultDetailElementComponent<WorkflowItemSearchResult, WorkflowItem> {
|
||||||
export class WorkflowitemMyDSpaceResultDetailElementComponent extends MyDSpaceResultDetailElementComponent<WorkflowitemMyDSpaceResult, WorkflowItem> {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The item object that belonging to the result object
|
* The item object that belonging to the result object
|
@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { WorkspaceitemMyDSpaceResultDetailElementComponent } from './workspaceitem-my-dspace-result-detail-element.component';
|
import { WorkspaceItemSearchResultDetailElementComponent } from './workspace-item-search-result-detail-element.component';
|
||||||
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
||||||
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: WorkspaceitemMyDSpaceResultDetailElementComponent;
|
let component: WorkspaceItemSearchResultDetailElementComponent;
|
||||||
let fixture: ComponentFixture<WorkspaceitemMyDSpaceResultDetailElementComponent>;
|
let fixture: ComponentFixture<WorkspaceItemSearchResultDetailElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: WorkspaceitemMyDSpaceResult = new WorkspaceitemMyDSpaceResult();
|
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -56,19 +56,19 @@ describe('WorkspaceitemMyDSpaceResultDetailElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [WorkspaceitemMyDSpaceResultDetailElementComponent],
|
declarations: [WorkspaceItemSearchResultDetailElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(WorkspaceitemMyDSpaceResultDetailElementComponent, {
|
}).overrideComponent(WorkspaceItemSearchResultDetailElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(WorkspaceitemMyDSpaceResultDetailElementComponent);
|
fixture = TestBed.createComponent(WorkspaceItemSearchResultDetailElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -1,32 +1,29 @@
|
|||||||
import { Component, Inject } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { find } from 'rxjs/operators';
|
import { find } from 'rxjs/operators';
|
||||||
|
|
||||||
import {
|
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
||||||
WorkspaceItem
|
|
||||||
} from '../../../../core/submission/models/workspaceitem.model';
|
|
||||||
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
import { isNotUndefined } from '../../../empty.util';
|
||||||
import { MyDSpaceResultDetailElementComponent } from '../my-dspace-result-detail-element.component';
|
import { SearchResultDetailElementComponent } from '../search-result-detail-element.component';
|
||||||
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 { 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/workspaceitem-search-result.model';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component renders workspaceitem object for the mydspace result in the detail view.
|
* This component renders workspaceitem object for the mydspace result in the detail view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-workspaceitem-my-dspace-result-detail-element',
|
selector: 'ds-workspace-item-search-result-detail-element',
|
||||||
styleUrls: ['../my-dspace-result-detail-element.component.scss', './workspaceitem-my-dspace-result-detail-element.component.scss'],
|
styleUrls: ['../search-result-detail-element.component.scss', './workspace-item-search-result-detail-element.component.scss'],
|
||||||
templateUrl: './workspaceitem-my-dspace-result-detail-element.component.html',
|
templateUrl: './workspace-item-search-result-detail-element.component.html',
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(WorkspaceitemMyDSpaceResult.name, ViewMode.DetailedListElement)
|
@listableObjectComponent(WorkspaceItemSearchResult.name, ViewMode.DetailedListElement)
|
||||||
@listableObjectComponent(WorkspaceItem.name, ViewMode.DetailedListElement)
|
export class WorkspaceItemSearchResultDetailElementComponent extends SearchResultDetailElementComponent<WorkspaceItemSearchResult, WorkspaceItem> {
|
||||||
export class WorkspaceitemMyDSpaceResultDetailElementComponent extends MyDSpaceResultDetailElementComponent<WorkspaceitemMyDSpaceResult, WorkspaceItem> {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The item object that belonging to the result object
|
* The item object that belonging to the result object
|
@@ -1,36 +1,34 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-truncatable [id]="dso.id">
|
||||||
<ds-truncatable [id]="item.id">
|
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
||||||
<div class="card" [@focusShadow]="(isCollapsed$ | async)?'blur':'focus'">
|
<a [routerLink]="['/items/' + dso.id]" class="card-img-top full-width">
|
||||||
<a [routerLink]="['/items/' + item.id]" class="card-img-top full-width">
|
<div>
|
||||||
<div>
|
<ds-grid-thumbnail [thumbnail]="this.dso.getThumbnail() | async">
|
||||||
<ds-grid-thumbnail [thumbnail]="this.item.getThumbnail() | async">
|
</ds-grid-thumbnail>
|
||||||
</ds-grid-thumbnail>
|
</div>
|
||||||
</div>
|
</a>
|
||||||
</a>
|
<div class="card-body">
|
||||||
<div class="card-body">
|
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="object"></ds-item-type-badge>
|
<ds-truncatable-part [id]="dso.id" [minLines]="3" type="h4">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3" type="h4">
|
<h4 class="card-title" [innerHTML]="dso.firstMetadataValue('dc.title')"></h4>
|
||||||
<h4 class="card-title" [innerHTML]="item.firstMetadataValue('dc.title')"></h4>
|
</ds-truncatable-part>
|
||||||
</ds-truncatable-part>
|
<p *ngIf="dso.hasMetadata(['dc.contributor.author', 'dc.creator', 'dc.contributor.*'])"
|
||||||
<p *ngIf="item.hasMetadata(['dc.contributor.author', 'dc.creator', 'dc.contributor.*'])"
|
class="dso-authors card-text text-muted">
|
||||||
class="item-authors card-text text-muted">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<span *ngIf="dso.hasMetadata('dc.date.issued')" class="dso-date">{{dso.firstMetadataValue('dc.date.issued')}}</span>
|
||||||
<span *ngIf="item.hasMetadata('dc.date.issued')" class="item-date">{{item.firstMetadataValue('dc.date.issued')}}</span>
|
<span *ngFor="let author of dso.allMetadataValues(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']);">,
|
||||||
<span *ngFor="let author of item.allMetadataValues(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']);">,
|
|
||||||
<span [innerHTML]="author"></span>
|
<span [innerHTML]="author"></span>
|
||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<p *ngIf="item.hasMetadata('dc.description.abstract')" class="item-abstract card-text">
|
<p *ngIf="dso.hasMetadata('dc.description.abstract')" class="dso-abstract card-text">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3">
|
<ds-truncatable-part [id]="dso.id" [minLines]="3">
|
||||||
<span [innerHTML]="firstMetadataValue('dc.description.abstract')"></span>
|
<span [innerHTML]="firstMetadataValue('dc.description.abstract')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</p>
|
</p>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<a [routerLink]="['/items/' + item.id]"
|
<a [routerLink]="['/items/' + dso.id]"
|
||||||
class="lead btn btn-primary viewButton">View</a>
|
class="lead btn btn-primary viewButton">View</a>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</div>
|
||||||
</ng-container>
|
</ds-truncatable>
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
|
|
||||||
import { SearchResult } from '../../../+search-page/search-result.model';
|
import { SearchResult } from '../../../+search-page/search-result.model';
|
||||||
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
||||||
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
|
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
|
||||||
import { ListableObject } from '../../object-collection/shared/listable-object.model';
|
|
||||||
import { TruncatableService } from '../../truncatable/truncatable.service';
|
import { TruncatableService } from '../../truncatable/truncatable.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { Metadata } from '../../../core/shared/metadata.utils';
|
import { Metadata } from '../../../core/shared/metadata.utils';
|
||||||
@@ -14,18 +13,23 @@ import { hasValue } from '../../empty.util';
|
|||||||
template: ``
|
template: ``
|
||||||
})
|
})
|
||||||
|
|
||||||
export class SearchResultGridElementComponent<T extends SearchResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> {
|
export class SearchResultGridElementComponent<T extends SearchResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> implements OnInit {
|
||||||
dso: K;
|
dso: K;
|
||||||
isCollapsed$: Observable<boolean>;
|
isCollapsed$: Observable<boolean>;
|
||||||
|
|
||||||
public constructor(protected truncatableService: TruncatableService) {
|
public constructor(protected truncatableService: TruncatableService) {
|
||||||
super();
|
super();
|
||||||
if (hasValue(this.object)) {
|
if (hasValue(this.object)) {
|
||||||
this.dso = this.object.indexableObject;
|
|
||||||
this.isCollapsed$ = this.isCollapsed();
|
this.isCollapsed$ = this.isCollapsed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
if (hasValue(this.object)) {
|
||||||
|
this.dso = this.object.indexableObject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights.
|
* Gets all matching metadata string values from hitHighlights or dso metadata, preferring hitHighlights.
|
||||||
*
|
*
|
||||||
@@ -49,5 +53,4 @@ export class SearchResultGridElementComponent<T extends SearchResult<K>, K exten
|
|||||||
private isCollapsed(): Observable<boolean> {
|
private isCollapsed(): Observable<boolean> {
|
||||||
return this.truncatableService.isCollapsed(this.dso.id);
|
return this.truncatableService.isCollapsed(this.dso.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
import { ITEM } from '../../../items/switcher/listable-object-component-loader.component';
|
|
||||||
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { ItemMetadataListElementComponent } from './item-metadata-list-element.component';
|
import { ItemMetadataListElementComponent } from './item-metadata-list-element.component';
|
||||||
import { By } from '@angular/platform-browser';
|
import { By } from '@angular/platform-browser';
|
||||||
@@ -15,9 +14,6 @@ describe('ItemMetadataListElementComponent', () => {
|
|||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [],
|
imports: [],
|
||||||
declarations: [ItemMetadataListElementComponent],
|
declarations: [ItemMetadataListElementComponent],
|
||||||
providers: [
|
|
||||||
{ provide: ITEM, useValue: mockItemMetadataRepresentation }
|
|
||||||
],
|
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(ItemMetadataListElementComponent, {
|
}).overrideComponent(ItemMetadataListElementComponent, {
|
||||||
set: {changeDetection: ChangeDetectionStrategy.Default}
|
set: {changeDetection: ChangeDetectionStrategy.Default}
|
||||||
|
@@ -2,7 +2,6 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|||||||
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { PlainTextMetadataListElementComponent } from './plain-text-metadata-list-element.component';
|
import { PlainTextMetadataListElementComponent } from './plain-text-metadata-list-element.component';
|
||||||
import { MetadatumRepresentation } from '../../../../core/shared/metadata-representation/metadatum/metadatum-representation.model';
|
import { MetadatumRepresentation } from '../../../../core/shared/metadata-representation/metadatum/metadatum-representation.model';
|
||||||
import { ITEM } from '../../../items/switcher/listable-object-component-loader.component';
|
|
||||||
|
|
||||||
const mockMetadataRepresentation = Object.assign(new MetadatumRepresentation('type'), {
|
const mockMetadataRepresentation = Object.assign(new MetadatumRepresentation('type'), {
|
||||||
key: 'dc.contributor.author',
|
key: 'dc.contributor.author',
|
||||||
@@ -17,9 +16,6 @@ describe('PlainTextMetadataListElementComponent', () => {
|
|||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [],
|
imports: [],
|
||||||
declarations: [PlainTextMetadataListElementComponent],
|
declarations: [PlainTextMetadataListElementComponent],
|
||||||
providers: [
|
|
||||||
{ provide: ITEM, useValue: mockMetadataRepresentation }
|
|
||||||
],
|
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(PlainTextMetadataListElementComponent, {
|
}).overrideComponent(PlainTextMetadataListElementComponent, {
|
||||||
set: {changeDetection: ChangeDetectionStrategy.Default}
|
set: {changeDetection: ChangeDetectionStrategy.Default}
|
||||||
|
@@ -5,20 +5,20 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { ClaimedMyDSpaceResultListElementComponent } from './claimed-my-dspace-result-list-element.component';
|
import { ClaimedSearchResultListElementComponent } from './claimed-search-result-list-element.component';
|
||||||
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
||||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: ClaimedMyDSpaceResultListElementComponent;
|
let component: ClaimedSearchResultListElementComponent;
|
||||||
let fixture: ComponentFixture<ClaimedMyDSpaceResultListElementComponent>;
|
let fixture: ComponentFixture<ClaimedSearchResultListElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: ClaimedTaskMyDSpaceResult = new ClaimedTaskMyDSpaceResult();
|
const mockResultObject: ClaimedTaskSearchResult = new ClaimedTaskSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -59,19 +59,19 @@ describe('ClaimedMyDSpaceResultListElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [ClaimedMyDSpaceResultListElementComponent],
|
declarations: [ClaimedSearchResultListElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(ClaimedMyDSpaceResultListElementComponent, {
|
}).overrideComponent(ClaimedSearchResultListElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(ClaimedMyDSpaceResultListElementComponent);
|
fixture = TestBed.createComponent(ClaimedSearchResultListElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -4,29 +4,28 @@ import { Location, LocationStrategy, PathLocationStrategy } from '@angular/commo
|
|||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { find } from 'rxjs/operators';
|
import { find } from 'rxjs/operators';
|
||||||
|
|
||||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
import { isNotUndefined } from '../../../empty.util';
|
||||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.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 { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
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 mydspace result in the list view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-claimed-my-dspace-result-list-element',
|
selector: 'ds-claimed-search-result-list-element',
|
||||||
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
||||||
templateUrl: './claimed-my-dspace-result-list-element.component.html',
|
templateUrl: './claimed-search-result-list-element.component.html',
|
||||||
providers: [Location, { provide: LocationStrategy, useClass: PathLocationStrategy }]
|
providers: [Location, { provide: LocationStrategy, useClass: PathLocationStrategy }]
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(ClaimedTaskMyDSpaceResult.name, ViewMode.ListElement)
|
@listableObjectComponent(ClaimedTaskSearchResult.name, ViewMode.ListElement)
|
||||||
@listableObjectComponent(ClaimedTask.name, ViewMode.ListElement)
|
export class ClaimedSearchResultListElementComponent extends SearchResultListElementComponent<ClaimedTaskSearchResult, ClaimedTask> {
|
||||||
export class ClaimedMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<ClaimedTaskMyDSpaceResult, ClaimedTask> {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A boolean representing if to show submitter information
|
* A boolean representing if to show submitter information
|
@@ -3,7 +3,7 @@ import { Component, Input } from '@angular/core';
|
|||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { fadeInOut } from '../../../animations/fade';
|
import { fadeInOut } from '../../../animations/fade';
|
||||||
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 { 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.
|
* This component show metadata for the given item object in the list view.
|
||||||
@@ -24,7 +24,7 @@ export class ItemListPreviewComponent {
|
|||||||
/**
|
/**
|
||||||
* The mydspace result object
|
* The mydspace result object
|
||||||
*/
|
*/
|
||||||
@Input() object: MyDSpaceResult<any>;
|
@Input() object: SearchResult<any>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represent item's status
|
* Represent item's status
|
||||||
|
@@ -5,16 +5,16 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
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 { 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';
|
||||||
|
|
||||||
let component: ItemMyDSpaceResultListElementComponent;
|
let component: ItemSearchResultListElementSubmissionComponent;
|
||||||
let fixture: ComponentFixture<ItemMyDSpaceResultListElementComponent>;
|
let fixture: ComponentFixture<ItemSearchResultListElementSubmissionComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: ItemMyDSpaceResult = new ItemMyDSpaceResult();
|
const mockResultObject: ItemSearchResult = new ItemSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
mockResultObject.indexableObject = Object.assign(new Item(), {
|
mockResultObject.indexableObject = Object.assign(new Item(), {
|
||||||
@@ -51,19 +51,19 @@ describe('ItemMyDSpaceResultListElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [ItemMyDSpaceResultListElementComponent],
|
declarations: [ItemSearchResultListElementSubmissionComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(ItemMyDSpaceResultListElementComponent, {
|
}).overrideComponent(ItemSearchResultListElementSubmissionComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(ItemMyDSpaceResultListElementComponent);
|
fixture = TestBed.createComponent(ItemSearchResultListElementSubmissionComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -1,24 +1,24 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
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 { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||||
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 { Context } from '../../../../core/shared/context.model';
|
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 mydspace result in the list view.
|
* This component renders item object for the mydspace result in the list view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-workspaceitem-my-dspace-result-list-element',
|
selector: 'ds-item-search-result-list-element-submission',
|
||||||
styleUrls: ['../my-dspace-result-list-element.component.scss', './item-my-dspace-result-list-element.component.scss'],
|
styleUrls: ['../my-dspace-result-list-element.component.scss', './item-search-result-list-element-submission.component.scss'],
|
||||||
templateUrl: './item-my-dspace-result-list-element.component.html'
|
templateUrl: './item-search-result-list-element-submission.component.html'
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.Submission)
|
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.Submission)
|
||||||
export class ItemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<ItemMyDSpaceResult, Item> {
|
export class ItemSearchResultListElementSubmissionComponent extends SearchResultListElementComponent<ItemSearchResult, Item> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represent item's status
|
* Represent item's status
|
@@ -1,57 +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('indexElementProvider') public index: number) {
|
|
||||||
super();
|
|
||||||
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,20 +5,20 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { PoolMyDSpaceResultListElementComponent } from './pool-my-dspace-result-list-element.component';
|
import { PoolSearchResultListElementComponent } from './pool-search-result-list-element.component';
|
||||||
import { PoolTaskMyDSpaceResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
import { PoolTaskSearchResult } from '../../../object-collection/shared/pool-task-my-dspace-result.model';
|
||||||
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: PoolMyDSpaceResultListElementComponent;
|
let component: PoolSearchResultListElementComponent;
|
||||||
let fixture: ComponentFixture<PoolMyDSpaceResultListElementComponent>;
|
let fixture: ComponentFixture<PoolSearchResultListElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: PoolTaskMyDSpaceResult = new PoolTaskMyDSpaceResult();
|
const mockResultObject: PoolTaskSearchResult = new PoolTaskSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -59,19 +59,19 @@ describe('PoolMyDSpaceResultListElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [PoolMyDSpaceResultListElementComponent],
|
declarations: [PoolSearchResultListElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(PoolMyDSpaceResultListElementComponent, {
|
}).overrideComponent(PoolSearchResultListElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(PoolMyDSpaceResultListElementComponent);
|
fixture = TestBed.createComponent(PoolSearchResultListElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -3,30 +3,28 @@ import { Component, Inject, OnInit } from '@angular/core';
|
|||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { find } from 'rxjs/operators';
|
import { find } from 'rxjs/operators';
|
||||||
|
|
||||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
import { isNotUndefined } from '../../../empty.util';
|
||||||
import { ListableObject } from '../../../object-collection/shared/listable-object.model';
|
|
||||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { PoolTask } from '../../../../core/tasks/models/pool-task-object.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 { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type';
|
||||||
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
import { listableObjectComponent } from '../../../object-collection/shared/listable-object/listable-object.decorator';
|
||||||
import { ClaimedTaskMyDSpaceResult } from '../../../object-collection/shared/claimed-task-my-dspace-result.model';
|
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 mydspace result in the list view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-pool-my-dspace-result-list-element',
|
selector: 'ds-pool-search-result-list-element',
|
||||||
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
||||||
templateUrl: './pool-my-dspace-result-list-element.component.html',
|
templateUrl: './pool-search-result-list-element.component.html',
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(PoolTaskMyDSpaceResult.name, ViewMode.ListElement)
|
@listableObjectComponent(PoolTaskSearchResult.name, ViewMode.ListElement)
|
||||||
@listableObjectComponent(PoolTask.name, ViewMode.ListElement)
|
export class PoolSearchResultListElementComponent extends SearchResultListElementComponent<PoolTaskSearchResult, PoolTask> implements OnInit {
|
||||||
export class PoolMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<PoolTaskMyDSpaceResult, PoolTask> implements OnInit {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A boolean representing if to show submitter information
|
* A boolean representing if to show submitter information
|
||||||
@@ -43,8 +41,10 @@ export class PoolMyDSpaceResultListElementComponent extends MyDSpaceResultListEl
|
|||||||
*/
|
*/
|
||||||
public workflowitem: WorkflowItem;
|
public workflowitem: WorkflowItem;
|
||||||
|
|
||||||
constructor(@Inject('indexElementProvider') public index: number) {
|
public index: number;
|
||||||
super(index);
|
|
||||||
|
constructor(protected truncatableService: TruncatableService) {
|
||||||
|
super(truncatableService);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { WorkflowitemMyDSpaceResultListElementComponent } from './workflowitem-my-dspace-result-list-element.component';
|
import { WorkflowItemSearchResultListElementComponent } from './workflow-item-my-search-result-list-element.component';
|
||||||
import { WorkflowitemMyDSpaceResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflowitem-my-dspace-result.model';
|
||||||
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
import { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: WorkflowitemMyDSpaceResultListElementComponent;
|
let component: WorkflowItemSearchResultListElementComponent;
|
||||||
let fixture: ComponentFixture<WorkflowitemMyDSpaceResultListElementComponent>;
|
let fixture: ComponentFixture<WorkflowItemSearchResultListElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: WorkflowitemMyDSpaceResult = new WorkflowitemMyDSpaceResult();
|
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -56,19 +56,19 @@ describe('WorkflowitemMyDSpaceResultListElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [WorkflowitemMyDSpaceResultListElementComponent],
|
declarations: [WorkflowItemSearchResultListElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(WorkflowitemMyDSpaceResultListElementComponent, {
|
}).overrideComponent(WorkflowItemSearchResultListElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(WorkflowitemMyDSpaceResultListElementComponent);
|
fixture = TestBed.createComponent(WorkflowItemSearchResultListElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -3,29 +3,28 @@ import { Component } from '@angular/core';
|
|||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { find } from 'rxjs/operators';
|
import { find } from 'rxjs/operators';
|
||||||
|
|
||||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
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 { WorkflowItem } from '../../../../core/submission/models/workflowitem.model';
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
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 { 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/workflowitem-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 mydspace result in the list view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-workflowitem-my-dspace-result-list-element',
|
selector: 'ds-workflow-item-my-dspace-result-list-element',
|
||||||
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
styleUrls: ['../my-dspace-result-list-element.component.scss'],
|
||||||
templateUrl: './workflowitem-my-dspace-result-list-element.component.html',
|
templateUrl: './workflow-item-search-result-list-element.component.html',
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(WorkflowitemMyDSpaceResult.name, ViewMode.ListElement)
|
@listableObjectComponent(WorkflowItemSearchResult.name, ViewMode.ListElement)
|
||||||
@listableObjectComponent(WorkflowItem.name, ViewMode.ListElement)
|
export class WorkflowItemSearchResultListElementComponent extends SearchResultListElementComponent<WorkflowItemSearchResult, WorkflowItem> {
|
||||||
export class WorkflowitemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<WorkflowitemMyDSpaceResult, WorkflowItem> {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The item object that belonging to the result object
|
* The item object that belonging to the result object
|
||||||
*/
|
*/
|
||||||
@@ -40,7 +39,7 @@ export class WorkflowitemMyDSpaceResultListElementComponent extends MyDSpaceResu
|
|||||||
* Initialize all instance variables
|
* Initialize all instance variables
|
||||||
*/
|
*/
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.initItem(this.dso.item as Observable<RemoteData<Item>>);
|
this.initItem(this.dso.item as Observable<RemoteData<Item>> );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
@@ -5,19 +5,19 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
|
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
import { WorkspaceitemMyDSpaceResultListElementComponent } from './workspaceitem-my-dspace-result-list-element.component';
|
import { WorkspaceItemSearchResultListElementComponent } from './workspace-item-search-result-list-element.component';
|
||||||
import { WorkspaceitemMyDSpaceResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workspaceitem-my-dspace-result.model';
|
||||||
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
|
||||||
import { RemoteData } from '../../../../core/data/remote-data';
|
import { RemoteData } from '../../../../core/data/remote-data';
|
||||||
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 '../../../testing/utils';
|
import { createSuccessfulRemoteDataObject } from '../../../testing/utils';
|
||||||
|
|
||||||
let component: WorkspaceitemMyDSpaceResultListElementComponent;
|
let component: WorkspaceItemSearchResultListElementComponent;
|
||||||
let fixture: ComponentFixture<WorkspaceitemMyDSpaceResultListElementComponent>;
|
let fixture: ComponentFixture<WorkspaceItemSearchResultListElementComponent>;
|
||||||
|
|
||||||
const compIndex = 1;
|
const compIndex = 1;
|
||||||
|
|
||||||
const mockResultObject: WorkspaceitemMyDSpaceResult = new WorkspaceitemMyDSpaceResult();
|
const mockResultObject: WorkflowItemSearchResult = new WorkflowItemSearchResult();
|
||||||
mockResultObject.hitHighlights = {};
|
mockResultObject.hitHighlights = {};
|
||||||
|
|
||||||
const item = Object.assign(new Item(), {
|
const item = Object.assign(new Item(), {
|
||||||
@@ -56,19 +56,19 @@ describe('WorkspaceitemMyDSpaceResultListElementComponent', () => {
|
|||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [NoopAnimationsModule],
|
imports: [NoopAnimationsModule],
|
||||||
declarations: [WorkspaceitemMyDSpaceResultListElementComponent],
|
declarations: [WorkspaceItemSearchResultListElementComponent],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
{ provide: 'objectElementProvider', useValue: (mockResultObject) },
|
||||||
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
{ provide: 'indexElementProvider', useValue: (compIndex) }
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
}).overrideComponent(WorkspaceitemMyDSpaceResultListElementComponent, {
|
}).overrideComponent(WorkspaceItemSearchResultListElementComponent, {
|
||||||
set: { changeDetection: ChangeDetectionStrategy.Default }
|
set: { changeDetection: ChangeDetectionStrategy.Default }
|
||||||
}).compileComponents();
|
}).compileComponents();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(async(() => {
|
beforeEach(async(() => {
|
||||||
fixture = TestBed.createComponent(WorkspaceitemMyDSpaceResultListElementComponent);
|
fixture = TestBed.createComponent(WorkspaceItemSearchResultListElementComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
}));
|
}));
|
||||||
|
|
@@ -3,27 +3,27 @@ import { Component } from '@angular/core';
|
|||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { find } from 'rxjs/operators';
|
import { find } from 'rxjs/operators';
|
||||||
|
|
||||||
import { MyDSpaceResultListElementComponent, } from '../my-dspace-result-list-element.component';
|
|
||||||
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
import { ViewMode } from '../../../../core/shared/view-mode.model';
|
||||||
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.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 { RemoteData } from '../../../../core/data/remote-data';
|
||||||
import { isNotUndefined } from '../../../empty.util';
|
import { isNotUndefined } from '../../../empty.util';
|
||||||
import { Item } from '../../../../core/shared/item.model';
|
import { Item } from '../../../../core/shared/item.model';
|
||||||
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 { 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/workspaceitem-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 mydspace result in the list view.
|
||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-workspaceitem-my-dspace-result-list-element',
|
selector: 'ds-workspace-item-search-result-list-element',
|
||||||
styleUrls: ['../my-dspace-result-list-element.component.scss', './workspaceitem-my-dspace-result-list-element.component.scss'],
|
styleUrls: ['../my-dspace-result-list-element.component.scss', './workspace-item-search-result-list-element.component.scss'],
|
||||||
templateUrl: './workspaceitem-my-dspace-result-list-element.component.html',
|
templateUrl: './workspace-item-search-result-list-element.component.html',
|
||||||
})
|
})
|
||||||
|
|
||||||
@listableObjectComponent(WorkspaceitemMyDSpaceResult.name, ViewMode.ListElement)
|
@listableObjectComponent(WorkspaceItemSearchResult.name, ViewMode.ListElement)
|
||||||
export class WorkspaceitemMyDSpaceResultListElementComponent extends MyDSpaceResultListElementComponent<WorkspaceitemMyDSpaceResult, WorkspaceItem> {
|
export class WorkspaceItemSearchResultListElementComponent extends SearchResultListElementComponent<WorkspaceItemSearchResult, WorkspaceItem> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The item object that belonging to the result object
|
* The item object that belonging to the result object
|
@@ -1,17 +1,16 @@
|
|||||||
<ng-container *ngVar="object.indexableObject as item">
|
<ds-item-type-badge [object]="dso"></ds-item-type-badge>
|
||||||
<ds-item-type-badge [object]="item"></ds-item-type-badge>
|
|
||||||
|
|
||||||
<ds-truncatable [id]="item.id" *ngIf="object !== undefined && object !== null">
|
<ds-truncatable [id]="dso.id" *ngIf="object !== undefined && object !== null">
|
||||||
<a
|
<a
|
||||||
[routerLink]="['/items/' + item.id]" class="lead"
|
[routerLink]="['/items/' + dso.id]" class="lead"
|
||||||
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
[innerHTML]="firstMetadataValue('dc.title')"></a>
|
||||||
<span class="text-muted">
|
<span class="text-muted">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="1">
|
<ds-truncatable-part [id]="dso.id" [minLines]="1">
|
||||||
<ng-container *ngIf="item.firstMetadataValue('dc.publisher') || item.firstMetadataValue('dc.date.issued')">(<span class="item-list-publisher"
|
<ng-container *ngIf="dso.firstMetadataValue('dc.publisher') || dso.firstMetadataValue('dc.date.issued')">(<span class="item-list-publisher"
|
||||||
[innerHTML]="firstMetadataValue('dc.publisher')">, </span><span
|
[innerHTML]="firstMetadataValue('dc.publisher')">, </span><span
|
||||||
*ngIf="item.firstMetadataValue('dc.date.issued')" class="item-list-date"
|
*ngIf="dso.firstMetadataValue('dc.date.issued')" class="item-list-date"
|
||||||
[innerHTML]="firstMetadataValue('dc.date.issued')"></span>)</ng-container>
|
[innerHTML]="firstMetadataValue('dc.date.issued')"></span>)</ng-container>
|
||||||
<span *ngIf="item.allMetadata(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']).length > 0"
|
<span *ngIf="dso.allMetadata(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']).length > 0"
|
||||||
class="item-list-authors">
|
class="item-list-authors">
|
||||||
<span *ngFor="let author of allMetadataValues(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']); let last=last;">
|
<span *ngFor="let author of allMetadataValues(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']); let last=last;">
|
||||||
<span [innerHTML]="author"><span [innerHTML]="author"></span></span>
|
<span [innerHTML]="author"><span [innerHTML]="author"></span></span>
|
||||||
@@ -20,10 +19,9 @@
|
|||||||
</span>
|
</span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</span>
|
</span>
|
||||||
<div *ngIf="item.firstMetadataValue('dc.description.abstract')" class="item-list-abstract">
|
<div *ngIf="dso.firstMetadataValue('dc.description.abstract')" class="item-list-abstract">
|
||||||
<ds-truncatable-part [id]="item.id" [minLines]="3"><span
|
<ds-truncatable-part [id]="dso.id" [minLines]="3"><span
|
||||||
[innerHTML]="firstMetadataValue('dc.description.abstract')"></span>
|
[innerHTML]="firstMetadataValue('dc.description.abstract')"></span>
|
||||||
</ds-truncatable-part>
|
</ds-truncatable-part>
|
||||||
</div>
|
</div>
|
||||||
</ds-truncatable>
|
</ds-truncatable>
|
||||||
</ng-container>
|
|
@@ -6,6 +6,7 @@ import { SearchResultListElementComponent } from '../../../search-result-list-el
|
|||||||
import { Item } from '../../../../../../core/shared/item.model';
|
import { Item } from '../../../../../../core/shared/item.model';
|
||||||
|
|
||||||
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement)
|
@listableObjectComponent('PublicationSearchResult', ViewMode.ListElement)
|
||||||
|
@listableObjectComponent(ItemSearchResult.name, ViewMode.ListElement)
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-publication-search-result-list-element',
|
selector: 'ds-publication-search-result-list-element',
|
||||||
styleUrls: ['./publication-search-result-list-element.component.scss'],
|
styleUrls: ['./publication-search-result-list-element.component.scss'],
|
||||||
|
@@ -1,10 +1,9 @@
|
|||||||
import { Component, Inject } from '@angular/core';
|
import { Component, Inject, OnInit } from '@angular/core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
|
|
||||||
import { SearchResult } from '../../../+search-page/search-result.model';
|
import { SearchResult } from '../../../+search-page/search-result.model';
|
||||||
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
import { DSpaceObject } from '../../../core/shared/dspace-object.model';
|
||||||
import { hasValue } from '../../empty.util';
|
import { hasValue } from '../../empty.util';
|
||||||
import { ListableObject } from '../../object-collection/shared/listable-object.model';
|
|
||||||
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
|
import { AbstractListableElementComponent } from '../../object-collection/shared/object-collection-element/abstract-listable-element.component';
|
||||||
import { TruncatableService } from '../../truncatable/truncatable.service';
|
import { TruncatableService } from '../../truncatable/truncatable.service';
|
||||||
import { Metadata } from '../../../core/shared/metadata.utils';
|
import { Metadata } from '../../../core/shared/metadata.utils';
|
||||||
@@ -15,12 +14,15 @@ import { MetadataMap } from '../../../core/shared/metadata.models';
|
|||||||
template: ``
|
template: ``
|
||||||
})
|
})
|
||||||
|
|
||||||
export class SearchResultListElementComponent<T extends SearchResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> {
|
export class SearchResultListElementComponent<T extends SearchResult<K>, K extends DSpaceObject> extends AbstractListableElementComponent<T> implements OnInit {
|
||||||
dso: K;
|
dso: K;
|
||||||
metadata: MetadataMap;
|
metadata: MetadataMap;
|
||||||
|
|
||||||
public constructor(protected truncatableService: TruncatableService) {
|
public constructor(protected truncatableService: TruncatableService) {
|
||||||
super();
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
if (hasValue(this.object)) {
|
if (hasValue(this.object)) {
|
||||||
this.dso = this.object.indexableObject;
|
this.dso = this.object.indexableObject;
|
||||||
}
|
}
|
||||||
@@ -49,4 +51,5 @@ export class SearchResultListElementComponent<T extends SearchResult<K>, K exten
|
|||||||
isCollapsed(): Observable<boolean> {
|
isCollapsed(): Observable<boolean> {
|
||||||
return this.truncatableService.isCollapsed(this.dso.id);
|
return this.truncatableService.isCollapsed(this.dso.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -74,8 +74,7 @@ import { DsDatePickerComponent } from './form/builder/ds-dynamic-form-ui/models/
|
|||||||
import { DsDynamicLookupComponent } from './form/builder/ds-dynamic-form-ui/models/lookup/dynamic-lookup.component';
|
import { DsDynamicLookupComponent } from './form/builder/ds-dynamic-form-ui/models/lookup/dynamic-lookup.component';
|
||||||
import { MockAdminGuard } from './mocks/mock-admin-guard.service';
|
import { MockAdminGuard } from './mocks/mock-admin-guard.service';
|
||||||
import { AlertComponent } from './alert/alert.component';
|
import { AlertComponent } from './alert/alert.component';
|
||||||
import { MyDSpaceResultListElementComponent } from './object-list/my-dspace-result-list-element/my-dspace-result-list-element.component';
|
import { SearchResultDetailElementComponent } from './object-detail/my-dspace-result-detail-element/search-result-detail-element.component';
|
||||||
import { MyDSpaceResultDetailElementComponent } from './object-detail/my-dspace-result-detail-element/my-dspace-result-detail-element.component';
|
|
||||||
import { ClaimedTaskActionsComponent } from './mydspace-actions/claimed-task/claimed-task-actions.component';
|
import { ClaimedTaskActionsComponent } from './mydspace-actions/claimed-task/claimed-task-actions.component';
|
||||||
import { PoolTaskActionsComponent } from './mydspace-actions/pool-task/pool-task-actions.component';
|
import { PoolTaskActionsComponent } from './mydspace-actions/pool-task/pool-task-actions.component';
|
||||||
import { ObjectDetailComponent } from './object-detail/object-detail.component';
|
import { ObjectDetailComponent } from './object-detail/object-detail.component';
|
||||||
@@ -264,7 +263,6 @@ const ENTRY_COMPONENTS = [
|
|||||||
// put shared entry components (components that are created dynamically) here
|
// put shared entry components (components that are created dynamically) here
|
||||||
CollectionListElementComponent,
|
CollectionListElementComponent,
|
||||||
CommunityListElementComponent,
|
CommunityListElementComponent,
|
||||||
MyDSpaceResultListElementComponent,
|
|
||||||
SearchResultListElementComponent,
|
SearchResultListElementComponent,
|
||||||
CommunitySearchResultListElementComponent,
|
CommunitySearchResultListElementComponent,
|
||||||
CollectionSearchResultListElementComponent,
|
CollectionSearchResultListElementComponent,
|
||||||
@@ -276,7 +274,7 @@ const ENTRY_COMPONENTS = [
|
|||||||
PublicationSearchResultListElementComponent,
|
PublicationSearchResultListElementComponent,
|
||||||
PublicationSearchResultGridElementComponent,
|
PublicationSearchResultGridElementComponent,
|
||||||
BrowseEntryListElementComponent,
|
BrowseEntryListElementComponent,
|
||||||
MyDSpaceResultDetailElementComponent,
|
SearchResultDetailElementComponent,
|
||||||
SearchResultGridElementComponent,
|
SearchResultGridElementComponent,
|
||||||
DsDynamicListComponent,
|
DsDynamicListComponent,
|
||||||
DsDynamicLookupComponent,
|
DsDynamicLookupComponent,
|
||||||
|
Reference in New Issue
Block a user