Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,28 +1,31 @@
<ds-metadata-field-wrapper [label]="label">
@for (objectPage of objects; track objectPage; let i = $index) {
@for (objectPage of objects; track objectPage; let i = $index; let lastPage = $last) {
<ng-container *ngVar="(objectPage | async) as representations">
@for (rep of representations; track rep) {
@for (rep of representations; track rep; let last = $last) {
<ds-metadata-representation-loader
[mdRepresentation]="rep">
</ds-metadata-representation-loader>
@if (!last || !lastPage) {
<span [innerHTML]="separator"></span>
}
}
@if ((i + 1) === objects.length && (i > 0) && (!representations || representations?.length === 0)) {
@if (lastPage && (i > 0) && (!representations || representations?.length === 0)) {
<ds-loading message="{{'loading.default' | translate}}"></ds-loading>
}
@if ((i + 1) === objects.length && representations?.length > 0) {
<div class="d-inline-block w-100 mt-2">
@if ((objects.length * incrementBy) < total) {
<div class="float-start">
<button class="btn btn-link btn-link-inline" (click)="increase()">{{'item.page.related-items.view-more' |
translate:{ amount: (total - (objects.length * incrementBy) < incrementBy) ? total - (objects.length * incrementBy) : incrementBy } }}</button>
</div>
}
@if (objects.length > 1) {
<div class="float-end">
<button class="btn btn-link btn-link-inline" (click)="decrease()">{{'item.page.related-items.view-less' |
translate:{ amount: representations?.length } }}</button>
</div>
}
@if (lastPage && representations?.length > 0 && ((objects.length * incrementBy) < total || objects.length > 1)) {
<div class="d-flex justify-content-between w-100 mt-2">
<div>
@if ((objects.length * incrementBy) < total) {
<button class="btn btn-link btn-link-inline" (click)="increase()">{{'item.page.related-items.view-more' |
translate:{ amount: (total - (objects.length * incrementBy) < incrementBy) ? total - (objects.length * incrementBy) : incrementBy } }}</button>
}
</div>
<div>
@if (objects.length > 1) {
<button class="btn btn-link btn-link-inline" (click)="decrease()">{{'item.page.related-items.view-less' |
translate:{ amount: representations?.length } }}</button>
}
</div>
</div>
}
</ng-container>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ export class MetadataRepresentationListComponent extends AbstractIncrementalList
*/
@Input() incrementBy = 10;

/**
* The separator used to split the metadata values (can contain HTML)
*/
@Input() separator = '<br>';

/**
* The total amount of metadata values available
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,14 @@ import { MetadataRepresentationListComponent } from './metadata-representation-l
templateUrl: '../../../shared/theme-support/themed.component.html',
})
export class ThemedMetadataRepresentationListComponent extends ThemedComponent<MetadataRepresentationListComponent> {
protected inAndOutputNames: (keyof MetadataRepresentationListComponent & keyof this)[] = ['parentItem', 'itemType', 'metadataFields', 'label', 'incrementBy'];
protected inAndOutputNames: (keyof MetadataRepresentationListComponent & keyof this)[] = [
'parentItem',
'itemType',
'metadataFields',
'label',
'incrementBy',
'separator',
];

@Input() parentItem: Item;

Expand All @@ -24,6 +31,8 @@ export class ThemedMetadataRepresentationListComponent extends ThemedComponent<M

@Input() incrementBy: number;

@Input() separator: string;

protected getComponentName(): string {
return 'MetadataRepresentationListComponent';
}
Expand Down
Loading