diff --git a/config/config.example.yml b/config/config.example.yml index 27400f0041..52a0720230 100644 --- a/config/config.example.yml +++ b/config/config.example.yml @@ -207,6 +207,13 @@ item: undoTimeout: 10000 # 10 seconds # Show the item access status label in items lists showAccessStatuses: false + simpleView: + bitstreamPageSize: 5 + fullView: + # Number of entries in the bitstream list in the full item view page. + # Rounded to the nearest size in the list of selectable sizes on the + # settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'. + bitstreamPageSize: 5 # Collection Page Config collection: diff --git a/src/app/item-page/full/field-components/file-section/full-file-section.component.ts b/src/app/item-page/full/field-components/file-section/full-file-section.component.ts index e21c1a32eb..89134a321e 100644 --- a/src/app/item-page/full/field-components/file-section/full-file-section.component.ts +++ b/src/app/item-page/full/field-components/file-section/full-file-section.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Inject, Input, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; @@ -14,6 +14,7 @@ import { NotificationsService } from '../../../../shared/notifications/notificat import { TranslateService } from '@ngx-translate/core'; import { hasValue, isEmpty } from '../../../../shared/empty.util'; import { PaginationService } from '../../../../core/pagination/pagination.service'; +import { AppConfig, APP_CONFIG } from 'src/config/app-config.interface'; /** * This component renders the file section of the item @@ -34,26 +35,28 @@ export class FullFileSectionComponent extends FileSectionComponent implements On originals$: Observable>>; licenses$: Observable>>; - pageSize = 5; - originalOptions = Object.assign(new PaginationComponentOptions(), { - id: 'obo', - currentPage: 1, - pageSize: this.pageSize - }); - - licenseOptions = Object.assign(new PaginationComponentOptions(), { - id: 'lbo', - currentPage: 1, - pageSize: this.pageSize - }); + originalOptions: PaginationComponentOptions; + licenseOptions: PaginationComponentOptions; constructor( bitstreamDataService: BitstreamDataService, protected notificationsService: NotificationsService, protected translateService: TranslateService, - protected paginationService: PaginationService + protected paginationService: PaginationService, + @Inject(APP_CONFIG) protected appConfig: AppConfig ) { - super(bitstreamDataService, notificationsService, translateService); + super(bitstreamDataService, notificationsService, translateService, appConfig); + this.originalOptions = Object.assign(new PaginationComponentOptions(), { + id: 'obo', + currentPage: 1, + pageSize: this.appConfig.item.fullView.bitstreamPageSize + }); + + this.licenseOptions = Object.assign(new PaginationComponentOptions(), { + id: 'lbo', + currentPage: 1, + pageSize: this.appConfig.item.fullView.bitstreamPageSize + }); } ngOnInit(): void { diff --git a/src/app/item-page/simple/field-components/file-section/file-section.component.ts b/src/app/item-page/simple/field-components/file-section/file-section.component.ts index d28b579996..a0e40376e5 100644 --- a/src/app/item-page/simple/field-components/file-section/file-section.component.ts +++ b/src/app/item-page/simple/field-components/file-section/file-section.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, Inject, Input, OnInit } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; @@ -10,6 +10,7 @@ import { PaginatedList } from '../../../../core/data/paginated-list.model'; import { NotificationsService } from '../../../../shared/notifications/notifications.service'; import { TranslateService } from '@ngx-translate/core'; import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; +import { AppConfig, APP_CONFIG } from 'src/config/app-config.interface'; /** * This component renders the file section of the item @@ -35,13 +36,15 @@ export class FileSectionComponent implements OnInit { isLastPage: boolean; - pageSize = 5; + pageSize: number; constructor( protected bitstreamDataService: BitstreamDataService, protected notificationsService: NotificationsService, - protected translateService: TranslateService + protected translateService: TranslateService, + @Inject(APP_CONFIG) protected appConfig: AppConfig ) { + this.pageSize = this.appConfig.item.simpleView.bitstreamPageSize } ngOnInit(): void { diff --git a/src/config/default-app-config.ts b/src/config/default-app-config.ts index f489abc53b..3940ea1c19 100644 --- a/src/config/default-app-config.ts +++ b/src/config/default-app-config.ts @@ -245,7 +245,16 @@ export class DefaultAppConfig implements AppConfig { undoTimeout: 10000 // 10 seconds }, // Show the item access status label in items lists - showAccessStatuses: false + showAccessStatuses: false, + simpleView: { + bitstreamPageSize: 5 + }, + fullView: { + // Number of entries in the bitstream list in the full item view page. + // Rounded to the nearest size in the list of selectable sizes on the + // settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'. + bitstreamPageSize: 5 + } }; // Collection Page Config diff --git a/src/config/item-config.interface.ts b/src/config/item-config.interface.ts index f842c37c05..1351911334 100644 --- a/src/config/item-config.interface.ts +++ b/src/config/item-config.interface.ts @@ -6,4 +6,15 @@ export interface ItemConfig extends Config { }; // This is used to show the access status label of items in results lists showAccessStatuses: boolean; + + simpleView: { + bitstreamPageSize: number; + }; + + fullView: { + // Number of entries in the bitstream list in the full item view page. + // Rounded to the nearest size in the list of selectable sizes on the + // settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'. + bitstreamPageSize: number; + } } diff --git a/src/environments/environment.test.ts b/src/environments/environment.test.ts index edd1cb9109..7410b17f37 100644 --- a/src/environments/environment.test.ts +++ b/src/environments/environment.test.ts @@ -229,7 +229,16 @@ export const environment: BuildConfig = { undoTimeout: 10000 // 10 seconds }, // Show the item access status label in items lists - showAccessStatuses: false + showAccessStatuses: false, + simpleView: { + bitstreamPageSize: 5 + }, + fullView: { + // Number of entries in the bitstream list in the full item view page. + // Rounded to the nearest size in the list of selectable sizes on the + // settings menu. See pageSizeOptions in 'pagination-component-options.model.ts'. + bitstreamPageSize: 5 + } }, collection: { edit: {