From 1ca4b95bef5cde61c9f67a7638d8a3634ece3e3a Mon Sep 17 00:00:00 2001 From: Ben Bosman Date: Fri, 3 Jan 2020 18:20:34 +0100 Subject: [PATCH] support uri field which is not dc.identifier.uri --- src/app/+item-page/item-page.module.ts | 3 ++ ...item-page-generic-uri-field.component.html | 3 ++ .../item-page-generic-uri-field.component.ts | 37 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.html create mode 100644 src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.ts diff --git a/src/app/+item-page/item-page.module.ts b/src/app/+item-page/item-page.module.ts index 5c54becdde..1571339bad 100644 --- a/src/app/+item-page/item-page.module.ts +++ b/src/app/+item-page/item-page.module.ts @@ -10,6 +10,7 @@ import { MetadataUriValuesComponent } from './field-components/metadata-uri-valu 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 { ItemPageGenericUriFieldComponent } from './simple/field-components/specific-field/generic-uri/item-page-generic-uri-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 { ItemPageFieldComponent } from './simple/field-components/specific-field/item-page-field.component'; @@ -47,6 +48,7 @@ import { AbstractIncrementalListComponent } from './simple/abstract-incremental- ItemPageDateFieldComponent, ItemPageAbstractFieldComponent, ItemPageUriFieldComponent, + ItemPageGenericUriFieldComponent, ItemPageTitleFieldComponent, ItemPageFieldComponent, FileSectionComponent, @@ -66,6 +68,7 @@ import { AbstractIncrementalListComponent } from './simple/abstract-incremental- MetadataValuesComponent, MetadataFieldWrapperComponent, GenericItemPageFieldComponent, + ItemPageGenericUriFieldComponent, RelatedEntitiesSearchComponent, RelatedItemsComponent, MetadataRepresentationListComponent, diff --git a/src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.html b/src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.html new file mode 100644 index 0000000000..2b19754127 --- /dev/null +++ b/src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.ts b/src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.ts new file mode 100644 index 0000000000..e55d596645 --- /dev/null +++ b/src/app/+item-page/simple/field-components/specific-field/generic-uri/item-page-generic-uri-field.component.ts @@ -0,0 +1,37 @@ +import {Component, Input} from "@angular/core"; +import {ItemPageFieldComponent} from "../item-page-field.component"; +import {Item} from "../../../../../core/shared/item.model"; + +@Component({ + selector: 'ds-item-page-generic-uri-field', + templateUrl: './item-page-generic-uri-field.component.html' +}) +/** + * This component can be used to represent any uri on a simple item page. + * It is the most generic way of displaying uris + * It expects 4 parameters: The item, a separator, the metadata keys and an i18n key + */ +export class ItemPageGenericUriFieldComponent extends ItemPageFieldComponent { + + /** + * The item to display metadata for + */ + @Input() item: Item; + + /** + * Separator string between multiple values of the metadata fields defined + * @type {string} + */ + @Input() separator: string; + + /** + * Fields (schema.element.qualifier) used to render their values. + */ + @Input() fields: string[]; + + /** + * Label i18n key for the rendered metadata + */ + @Input() label: string; + +}