mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
refactored ItemDetailPreviewComponent
This commit is contained in:
@@ -5,6 +5,15 @@ import { SharedModule } from '../shared/shared.module';
|
|||||||
|
|
||||||
import { ItemPageComponent } from './simple/item-page.component';
|
import { ItemPageComponent } from './simple/item-page.component';
|
||||||
import { ItemPageRoutingModule } from './item-page-routing.module';
|
import { ItemPageRoutingModule } from './item-page-routing.module';
|
||||||
|
import { MetadataUriValuesComponent } from './field-components/metadata-uri-values/metadata-uri-values.component';
|
||||||
|
import { ItemPageAuthorFieldComponent } from './simple/field-components/specific-field/author/item-page-author-field.component';
|
||||||
|
import { ItemPageDateFieldComponent } from './simple/field-components/specific-field/date/item-page-date-field.component';
|
||||||
|
import { ItemPageAbstractFieldComponent } from './simple/field-components/specific-field/abstract/item-page-abstract-field.component';
|
||||||
|
import { ItemPageUriFieldComponent } from './simple/field-components/specific-field/uri/item-page-uri-field.component';
|
||||||
|
import { ItemPageTitleFieldComponent } from './simple/field-components/specific-field/title/item-page-title-field.component';
|
||||||
|
import { ItemPageSpecificFieldComponent } from './simple/field-components/specific-field/item-page-specific-field.component';
|
||||||
|
import { FileSectionComponent } from './simple/field-components/file-section/file-section.component';
|
||||||
|
import { CollectionsComponent } from './field-components/collections/collections.component';
|
||||||
import { FullItemPageComponent } from './full/full-item-page.component';
|
import { FullItemPageComponent } from './full/full-item-page.component';
|
||||||
import { FullFileSectionComponent } from './full/field-components/file-section/full-file-section.component';
|
import { FullFileSectionComponent } from './full/field-components/file-section/full-file-section.component';
|
||||||
import { EditItemPageModule } from './edit-item-page/edit-item-page.module';
|
import { EditItemPageModule } from './edit-item-page/edit-item-page.module';
|
||||||
@@ -19,6 +28,15 @@ import { EditItemPageModule } from './edit-item-page/edit-item-page.module';
|
|||||||
declarations: [
|
declarations: [
|
||||||
ItemPageComponent,
|
ItemPageComponent,
|
||||||
FullItemPageComponent,
|
FullItemPageComponent,
|
||||||
|
MetadataUriValuesComponent,
|
||||||
|
ItemPageAuthorFieldComponent,
|
||||||
|
ItemPageDateFieldComponent,
|
||||||
|
ItemPageAbstractFieldComponent,
|
||||||
|
ItemPageUriFieldComponent,
|
||||||
|
ItemPageTitleFieldComponent,
|
||||||
|
ItemPageSpecificFieldComponent,
|
||||||
|
FileSectionComponent,
|
||||||
|
CollectionsComponent,
|
||||||
FullFileSectionComponent
|
FullFileSectionComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
@@ -3,20 +3,47 @@
|
|||||||
<ds-mydspace-item-status [status]="status"></ds-mydspace-item-status>
|
<ds-mydspace-item-status [status]="status"></ds-mydspace-item-status>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<div *ngIf="item">
|
<div *ngIf="item">
|
||||||
<ds-item-page-title-field [item]="item"></ds-item-page-title-field>
|
<h2 class="item-page-title-field">
|
||||||
|
<ds-metadata-values *ngIf="item.hasMetadata('dc.title')" [mdValues]="item?.allMetadata(fields)"></ds-metadata-values>
|
||||||
|
<span class="text-muted" *ngIf="!item.hasMetadata('dc.title')">{{('mydspace.results.no-title' | translate)}}</span>
|
||||||
|
</h2>
|
||||||
<div class="row mb-1">
|
<div class="row mb-1">
|
||||||
<div class="col-xs-12 col-md-4">
|
<div class="col-xs-12 col-md-4">
|
||||||
<ds-metadata-field-wrapper>
|
<ds-metadata-field-wrapper>
|
||||||
<ds-thumbnail [thumbnail]="thumbnail$ | async"></ds-thumbnail>
|
<ds-thumbnail [thumbnail]="thumbnail$ | async"></ds-thumbnail>
|
||||||
</ds-metadata-field-wrapper>
|
</ds-metadata-field-wrapper>
|
||||||
<ds-item-page-file-section [item]="item"></ds-item-page-file-section>
|
<ds-metadata-field-wrapper [label]="'item.page.date' | translate">
|
||||||
<ds-item-page-date-field [item]="item"></ds-item-page-date-field>
|
<ng-container *ngIf="item.hasMetadata('dc.date.issued')">
|
||||||
<ds-item-page-author-field [item]="item"></ds-item-page-author-field>
|
<span *ngFor="let mdValue of allMetadataValues('dc.date.issued'); let last=last;">
|
||||||
|
{{mdValue.value}}<span *ngIf="!last" [innerHTML]="separator"></span>
|
||||||
|
</span>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngIf="!item.hasMetadata('dc.date.issued')">
|
||||||
|
<span class="text-muted">{{('mydspace.results.no-date' | translate)}}</span>
|
||||||
|
</ng-container>
|
||||||
|
</ds-metadata-field-wrapper>
|
||||||
|
<ds-metadata-field-wrapper [label]="'item.page.author' | translate">
|
||||||
|
<ng-container *ngIf="item.hasMetadata(['dc.contributor', 'dc.creator', 'dc.contributor.*']);">
|
||||||
|
<span *ngFor="let mdValue of allMetadataValues(['dc.contributor.author', 'dc.creator', 'dc.contributor.*']); let last=last;">
|
||||||
|
{{mdValue.value}}<span *ngIf="!last" [innerHTML]="separator"></span>
|
||||||
|
</span>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngIf="!item.hasMetadata(['dc.contributor', 'dc.creator', 'dc.contributor.*']);">
|
||||||
|
<span class="text-muted">{{('mydspace.results.no-authors' | translate)}}</span>
|
||||||
|
</ng-container>
|
||||||
|
</ds-metadata-field-wrapper>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-md-6">
|
<div class="col-xs-12 col-md-6">
|
||||||
<ds-item-page-abstract-field [item]="item"></ds-item-page-abstract-field>
|
<ds-metadata-field-wrapper [label]="'item.page.abstract' | translate">
|
||||||
<ds-item-page-uri-field [item]="item"></ds-item-page-uri-field>
|
<ng-container *ngIf="item.hasMetadata('dc.description.abstract');">
|
||||||
<ds-item-page-collections [item]="item"></ds-item-page-collections>
|
<span *ngFor="let mdValue of allMetadataValues('dc.description.abstract'); let last=last;">
|
||||||
|
{{mdValue.value}}<span *ngIf="!last" [innerHTML]="separator"></span>
|
||||||
|
</span>
|
||||||
|
</ng-container>
|
||||||
|
<ng-container *ngIf="!item.hasMetadata('dc.description.abstract');">
|
||||||
|
<span class="text-muted">{{('mydspace.results.no-abstract' | translate)}}</span>
|
||||||
|
</ng-container>
|
||||||
|
</ds-metadata-field-wrapper>
|
||||||
<div>
|
<div>
|
||||||
<ng-content></ng-content>
|
<ng-content></ng-content>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -6,6 +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 { Metadata } from '../../../../core/shared/metadata.utils';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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.
|
||||||
@@ -43,6 +44,16 @@ export class ItemDetailPreviewComponent {
|
|||||||
*/
|
*/
|
||||||
public thumbnail$: Observable<Bitstream>;
|
public thumbnail$: Observable<Bitstream>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.item.metadata], keyOrKeys);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize all instance variables
|
* Initialize all instance variables
|
||||||
*/
|
*/
|
||||||
|
@@ -127,17 +127,8 @@ import { EditItemSelectorComponent } from './dso-selector/modal-wrappers/edit-it
|
|||||||
import { EditCommunitySelectorComponent } from './dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component';
|
import { EditCommunitySelectorComponent } from './dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component';
|
||||||
import { EditCollectionSelectorComponent } from './dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component';
|
import { EditCollectionSelectorComponent } from './dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component';
|
||||||
import { ItemListPreviewComponent } from './object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component';
|
import { ItemListPreviewComponent } from './object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component';
|
||||||
import { ItemPageAuthorFieldComponent } from '../+item-page/simple/field-components/specific-field/author/item-page-author-field.component';
|
|
||||||
import { ItemPageDateFieldComponent } from '../+item-page/simple/field-components/specific-field/date/item-page-date-field.component';
|
|
||||||
import { ItemPageAbstractFieldComponent } from '../+item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component';
|
|
||||||
import { ItemPageUriFieldComponent } from '../+item-page/simple/field-components/specific-field/uri/item-page-uri-field.component';
|
|
||||||
import { ItemPageTitleFieldComponent } from '../+item-page/simple/field-components/specific-field/title/item-page-title-field.component';
|
|
||||||
import { ItemPageSpecificFieldComponent } from '../+item-page/simple/field-components/specific-field/item-page-specific-field.component';
|
|
||||||
import { FileSectionComponent } from '../+item-page/simple/field-components/file-section/file-section.component';
|
|
||||||
import { MetadataFieldWrapperComponent } from '../+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component';
|
import { MetadataFieldWrapperComponent } from '../+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component';
|
||||||
import { CollectionsComponent } from '../+item-page/field-components/collections/collections.component';
|
|
||||||
import { MetadataValuesComponent } from '../+item-page/field-components/metadata-values/metadata-values.component';
|
import { MetadataValuesComponent } from '../+item-page/field-components/metadata-values/metadata-values.component';
|
||||||
import { MetadataUriValuesComponent } from '../+item-page/field-components/metadata-uri-values/metadata-uri-values.component';
|
|
||||||
import { RoleDirective } from './roles/role.directive';
|
import { RoleDirective } from './roles/role.directive';
|
||||||
import { UserMenuComponent } from './auth-nav-menu/user-menu/user-menu.component';
|
import { UserMenuComponent } from './auth-nav-menu/user-menu/user-menu.component';
|
||||||
import { ClaimedTaskActionsReturnToPoolComponent } from './mydspace-actions/claimed-task/return-to-pool/claimed-task-actions-return-to-pool.component';
|
import { ClaimedTaskActionsReturnToPoolComponent } from './mydspace-actions/claimed-task/return-to-pool/claimed-task-actions-return-to-pool.component';
|
||||||
@@ -296,17 +287,8 @@ const ENTRY_COMPONENTS = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const SHARED_ITEM_PAGE_COMPONENTS = [
|
const SHARED_ITEM_PAGE_COMPONENTS = [
|
||||||
CollectionsComponent,
|
|
||||||
FileSectionComponent,
|
|
||||||
ItemPageAuthorFieldComponent,
|
|
||||||
ItemPageDateFieldComponent,
|
|
||||||
ItemPageAbstractFieldComponent,
|
|
||||||
ItemPageUriFieldComponent,
|
|
||||||
ItemPageTitleFieldComponent,
|
|
||||||
ItemPageSpecificFieldComponent,
|
|
||||||
MetadataFieldWrapperComponent,
|
MetadataFieldWrapperComponent,
|
||||||
MetadataValuesComponent,
|
MetadataValuesComponent,
|
||||||
MetadataUriValuesComponent
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const PROVIDERS = [
|
const PROVIDERS = [
|
||||||
|
Reference in New Issue
Block a user