Skip to content
Merged
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,6 +1,6 @@
import { Component, Input, OnInit } from '@angular/core';
import { Observable, of, combineLatest } from 'rxjs';
import { map, switchMap } from 'rxjs/operators';
import { map, switchMap, shareReplay } from 'rxjs/operators';
import { ItemVersionsComponent } from '../../../versions/item-versions.component';
import { Item } from '../../../../core/shared/item.model';
import { Version } from '../../../../core/shared/version.model';
Expand Down Expand Up @@ -40,6 +40,11 @@ interface EnhancedVersionDTO extends VersionDTO {
})
export class ClarinItemVersionsFieldComponent extends ItemVersionsComponent implements OnInit {

/**
* Maximum number of versions to fetch at once for the dropdown display.
*/
private readonly MAX_VERSIONS_TO_DISPLAY = 9999;

/**
* Icon name for the clarin field
*/
Expand All @@ -62,7 +67,12 @@ export class ClarinItemVersionsFieldComponent extends ItemVersionsComponent impl
enhancedVersions$: Observable<EnhancedVersionDTO[]>;

ngOnInit(): void {
// Call parent's ngOnInit first to set up all the observables
// Override the parent's pageSize to fetch all versions at once for the dropdown display
this.pageSize = this.MAX_VERSIONS_TO_DISPLAY;
this.options = Object.assign(this.options, {
pageSize: this.pageSize
});

super.ngOnInit();

// Set up clarin-specific showMetadataValue logic
Expand Down Expand Up @@ -98,7 +108,8 @@ export class ClarinItemVersionsFieldComponent extends ItemVersionsComponent impl
isCurrentVersion: versionDTO.version.id === currentVersionId
} as EnhancedVersionDTO;
});
})
}),
shareReplay(1) // Cache the result to prevent duplicate requests
);
} else {
// Fallback: check if isAdmin$ is available, otherwise hide the component
Expand Down