Merge pull request #1955 from arvoConsultores/DS-1774

The number of bitstreams on item pages are now configurable
This commit is contained in:
Tim Donohue
2022-12-07 14:49:20 -06:00
committed by GitHub
8 changed files with 48 additions and 14 deletions

View File

@@ -210,6 +210,11 @@ item:
undoTimeout: 10000 # 10 seconds undoTimeout: 10000 # 10 seconds
# Show the item access status label in items lists # Show the item access status label in items lists
showAccessStatuses: false showAccessStatuses: false
bitstream:
# Number of entries in the bitstream list in the 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'.
pageSize: 5
# Collection Page Config # Collection Page Config
collection: collection:
@@ -298,4 +303,4 @@ info:
# display in supported metadata fields. By default, only dc.description.abstract is supported. # display in supported metadata fields. By default, only dc.description.abstract is supported.
markdown: markdown:
enabled: false enabled: false
mathjax: false mathjax: false

View File

@@ -18,6 +18,8 @@ import { NotificationsService } from '../../../../shared/notifications/notificat
import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub'; import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub';
import { PaginationService } from '../../../../core/pagination/pagination.service'; import { PaginationService } from '../../../../core/pagination/pagination.service';
import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub'; import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub';
import { APP_CONFIG } from 'src/config/app-config.interface';
import { environment } from 'src/environments/environment';
describe('FullFileSectionComponent', () => { describe('FullFileSectionComponent', () => {
let comp: FullFileSectionComponent; let comp: FullFileSectionComponent;
@@ -69,7 +71,8 @@ describe('FullFileSectionComponent', () => {
providers: [ providers: [
{ provide: BitstreamDataService, useValue: bitstreamDataService }, { provide: BitstreamDataService, useValue: bitstreamDataService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() }, { provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: PaginationService, useValue: paginationService } { provide: PaginationService, useValue: paginationService },
{ provide: APP_CONFIG, useValue: environment },
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]

View File

@@ -1,4 +1,4 @@
import { Component, Input, OnInit } from '@angular/core'; import { Component, Inject, Input, OnInit } from '@angular/core';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; 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 { TranslateService } from '@ngx-translate/core';
import { hasValue, isEmpty } from '../../../../shared/empty.util'; import { hasValue, isEmpty } from '../../../../shared/empty.util';
import { PaginationService } from '../../../../core/pagination/pagination.service'; 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 * This component renders the file section of the item
@@ -34,26 +35,26 @@ export class FullFileSectionComponent extends FileSectionComponent implements On
originals$: Observable<RemoteData<PaginatedList<Bitstream>>>; originals$: Observable<RemoteData<PaginatedList<Bitstream>>>;
licenses$: Observable<RemoteData<PaginatedList<Bitstream>>>; licenses$: Observable<RemoteData<PaginatedList<Bitstream>>>;
pageSize = 5;
originalOptions = Object.assign(new PaginationComponentOptions(), { originalOptions = Object.assign(new PaginationComponentOptions(), {
id: 'obo', id: 'obo',
currentPage: 1, currentPage: 1,
pageSize: this.pageSize pageSize: this.appConfig.item.bitstream.pageSize
}); });
licenseOptions = Object.assign(new PaginationComponentOptions(), { licenseOptions = Object.assign(new PaginationComponentOptions(), {
id: 'lbo', id: 'lbo',
currentPage: 1, currentPage: 1,
pageSize: this.pageSize pageSize: this.appConfig.item.bitstream.pageSize
}); });
constructor( constructor(
bitstreamDataService: BitstreamDataService, bitstreamDataService: BitstreamDataService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected translateService: TranslateService, protected translateService: TranslateService,
protected paginationService: PaginationService protected paginationService: PaginationService,
@Inject(APP_CONFIG) protected appConfig: AppConfig
) { ) {
super(bitstreamDataService, notificationsService, translateService); super(bitstreamDataService, notificationsService, translateService, appConfig);
} }
ngOnInit(): void { ngOnInit(): void {

View File

@@ -17,6 +17,8 @@ import { MetadataFieldWrapperComponent } from '../../../field-components/metadat
import { createPaginatedList } from '../../../../shared/testing/utils.test'; import { createPaginatedList } from '../../../../shared/testing/utils.test';
import { NotificationsService } from '../../../../shared/notifications/notifications.service'; import { NotificationsService } from '../../../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub'; import { NotificationsServiceStub } from '../../../../shared/testing/notifications-service.stub';
import { APP_CONFIG } from 'src/config/app-config.interface';
import { environment } from 'src/environments/environment';
describe('FileSectionComponent', () => { describe('FileSectionComponent', () => {
let comp: FileSectionComponent; let comp: FileSectionComponent;
@@ -65,7 +67,8 @@ describe('FileSectionComponent', () => {
declarations: [FileSectionComponent, VarDirective, FileSizePipe, MetadataFieldWrapperComponent], declarations: [FileSectionComponent, VarDirective, FileSizePipe, MetadataFieldWrapperComponent],
providers: [ providers: [
{ provide: BitstreamDataService, useValue: bitstreamDataService }, { provide: BitstreamDataService, useValue: bitstreamDataService },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() } { provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: APP_CONFIG, useValue: environment }
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]

View File

@@ -1,4 +1,4 @@
import { Component, Input, OnInit } from '@angular/core'; import { Component, Inject, Input, OnInit } from '@angular/core';
import { BehaviorSubject } from 'rxjs'; import { BehaviorSubject } from 'rxjs';
import { BitstreamDataService } from '../../../../core/data/bitstream-data.service'; 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 { NotificationsService } from '../../../../shared/notifications/notifications.service';
import { TranslateService } from '@ngx-translate/core'; import { TranslateService } from '@ngx-translate/core';
import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; 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 * This component renders the file section of the item
@@ -35,13 +36,15 @@ export class FileSectionComponent implements OnInit {
isLastPage: boolean; isLastPage: boolean;
pageSize = 5; pageSize: number;
constructor( constructor(
protected bitstreamDataService: BitstreamDataService, protected bitstreamDataService: BitstreamDataService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
protected translateService: TranslateService protected translateService: TranslateService,
@Inject(APP_CONFIG) protected appConfig: AppConfig
) { ) {
this.pageSize = this.appConfig.item.bitstream.pageSize;
} }
ngOnInit(): void { ngOnInit(): void {

View File

@@ -246,7 +246,13 @@ export class DefaultAppConfig implements AppConfig {
undoTimeout: 10000 // 10 seconds undoTimeout: 10000 // 10 seconds
}, },
// Show the item access status label in items lists // Show the item access status label in items lists
showAccessStatuses: false showAccessStatuses: false,
bitstream: {
// Number of entries in the bitstream list in the 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'.
pageSize: 5
}
}; };
// Collection Page Config // Collection Page Config

View File

@@ -6,4 +6,11 @@ export interface ItemConfig extends Config {
}; };
// This is used to show the access status label of items in results lists // This is used to show the access status label of items in results lists
showAccessStatuses: boolean; showAccessStatuses: boolean;
bitstream: {
// Number of entries in the bitstream list in the 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'.
pageSize: number;
}
} }

View File

@@ -229,7 +229,13 @@ export const environment: BuildConfig = {
undoTimeout: 10000 // 10 seconds undoTimeout: 10000 // 10 seconds
}, },
// Show the item access status label in items lists // Show the item access status label in items lists
showAccessStatuses: false showAccessStatuses: false,
bitstream: {
// Number of entries in the bitstream list in the 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'.
pageSize: 5
}
}, },
collection: { collection: {
edit: { edit: {