Skip to content

Commit e9a87a6

Browse files
committed
Merge remote-tracking branch 'origin/main' into CST-6753_GA4
2 parents 79f65f1 + 064dae2 commit e9a87a6

203 files changed

Lines changed: 5731 additions & 2873 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

config/config.example.yml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ languages:
162162
- code: bn
163163
label: বাংলা
164164
active: true
165+
- code: el
166+
label: Ελληνικά
167+
active: true
165168

166169
# Browse-By Pages
167170
browseBy:
@@ -171,6 +174,27 @@ browseBy:
171174
fiveYearLimit: 30
172175
# The absolute lowest year to display in the dropdown (only used when no lowest date can be found for all items)
173176
defaultLowerLimit: 1900
177+
# If true, thumbnail images for items will be added to BOTH search and browse result lists.
178+
showThumbnails: true
179+
# The number of entries in a paginated browse results list.
180+
# Rounded to the nearest size in the list of selectable sizes on the
181+
# settings menu.
182+
pageSize: 20
183+
184+
communityList:
185+
# No. of communities to list per expansion (show more)
186+
pageSize: 20
187+
188+
homePage:
189+
recentSubmissions:
190+
# The number of item showing in recent submission components
191+
pageSize: 5
192+
# Sort record of recent submission
193+
sortField: 'dc.date.accessioned'
194+
topLevelCommunityList:
195+
# No. of communities to list per page on the home page
196+
# This will always round to the nearest number from the list of page sizes. e.g. if you set it to 7 it'll use 10
197+
pageSize: 5
174198

175199
# Item Config
176200
item:
@@ -246,7 +270,7 @@ themes:
246270

247271
# The default bundles that should always be displayed as suggestions when you upload a new bundle
248272
bundle:
249-
- standardBundles: [ ORIGINAL, THUMBNAIL, LICENSE ]
273+
standardBundles: [ ORIGINAL, THUMBNAIL, LICENSE ]
250274

251275
# Whether to enable media viewer for image and/or video Bitstreams (i.e. Bitstreams whose MIME type starts with 'image' or 'video').
252276
# For images, this enables a gallery viewer where you can zoom or page through images.
@@ -261,10 +285,3 @@ mediaViewer:
261285
info:
262286
enableEndUserAgreement: true
263287
enablePrivacyStatement: true
264-
# Home Page
265-
homePage:
266-
recentSubmissions:
267-
# The number of item showing in recent submission components
268-
pageSize: 5
269-
# Sort record of recent submission
270-
sortField: 'dc.date.accessioned'

src/app/access-control/group-registry/group-form/members-list/members-list.component.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
combineLatest as observableCombineLatest,
1111
ObservedValueOf,
1212
} from 'rxjs';
13-
import { map, mergeMap, switchMap, take } from 'rxjs/operators';
13+
import { defaultIfEmpty, map, mergeMap, switchMap, take } from 'rxjs/operators';
1414
import {buildPaginatedList, PaginatedList} from '../../../../core/data/paginated-list.model';
1515
import { RemoteData } from '../../../../core/data/remote-data';
1616
import { EPersonDataService } from '../../../../core/eperson/eperson-data.service';
@@ -144,7 +144,7 @@ export class MembersListComponent implements OnInit, OnDestroy {
144144
}
145145
}),
146146
switchMap((epersonListRD: RemoteData<PaginatedList<EPerson>>) => {
147-
const dtos$ = observableCombineLatest(...epersonListRD.payload.page.map((member: EPerson) => {
147+
const dtos$ = observableCombineLatest([...epersonListRD.payload.page.map((member: EPerson) => {
148148
const dto$: Observable<EpersonDtoModel> = observableCombineLatest(
149149
this.isMemberOfGroup(member), (isMember: ObservedValueOf<Observable<boolean>>) => {
150150
const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel();
@@ -153,8 +153,8 @@ export class MembersListComponent implements OnInit, OnDestroy {
153153
return epersonDtoModel;
154154
});
155155
return dto$;
156-
}));
157-
return dtos$.pipe(map((dtos: EpersonDtoModel[]) => {
156+
})]);
157+
return dtos$.pipe(defaultIfEmpty([]), map((dtos: EpersonDtoModel[]) => {
158158
return buildPaginatedList(epersonListRD.payload.pageInfo, dtos);
159159
}));
160160
}))
@@ -174,7 +174,7 @@ export class MembersListComponent implements OnInit, OnDestroy {
174174
return this.ePersonDataService.findListByHref(group._links.epersons.href, {
175175
currentPage: 1,
176176
elementsPerPage: 9999
177-
}, false)
177+
})
178178
.pipe(
179179
getFirstSucceededRemoteData(),
180180
getRemoteDataPayload(),
@@ -274,7 +274,7 @@ export class MembersListComponent implements OnInit, OnDestroy {
274274
}
275275
}),
276276
switchMap((epersonListRD: RemoteData<PaginatedList<EPerson>>) => {
277-
const dtos$ = observableCombineLatest(...epersonListRD.payload.page.map((member: EPerson) => {
277+
const dtos$ = observableCombineLatest([...epersonListRD.payload.page.map((member: EPerson) => {
278278
const dto$: Observable<EpersonDtoModel> = observableCombineLatest(
279279
this.isMemberOfGroup(member), (isMember: ObservedValueOf<Observable<boolean>>) => {
280280
const epersonDtoModel: EpersonDtoModel = new EpersonDtoModel();
@@ -283,8 +283,8 @@ export class MembersListComponent implements OnInit, OnDestroy {
283283
return epersonDtoModel;
284284
});
285285
return dto$;
286-
}));
287-
return dtos$.pipe(map((dtos: EpersonDtoModel[]) => {
286+
})]);
287+
return dtos$.pipe(defaultIfEmpty([]), map((dtos: EpersonDtoModel[]) => {
288288
return buildPaginatedList(epersonListRD.payload.pageInfo, dtos);
289289
}));
290290
}))

src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component.spec.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ import { By } from '@angular/platform-browser';
1414
import { RouterTestingModule } from '@angular/router/testing';
1515
import { getCollectionEditRoute } from '../../../../../collection-page/collection-page-routing-paths';
1616
import { LinkService } from '../../../../../core/cache/builders/link.service';
17+
import { AuthService } from '../../../../../core/auth/auth.service';
18+
import { AuthServiceStub } from '../../../../../shared/testing/auth-service.stub';
19+
import { FileService } from '../../../../../core/shared/file.service';
20+
import { FileServiceStub } from '../../../../../shared/testing/file-service.stub';
21+
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
22+
import { AuthorizationDataServiceStub } from '../../../../../shared/testing/authorization-service.stub';
23+
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
24+
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
1725

1826
describe('CollectionAdminSearchResultGridElementComponent', () => {
1927
let component: CollectionAdminSearchResultGridElementComponent;
@@ -45,7 +53,11 @@ describe('CollectionAdminSearchResultGridElementComponent', () => {
4553
providers: [
4654
{ provide: TruncatableService, useValue: mockTruncatableService },
4755
{ provide: BitstreamDataService, useValue: {} },
48-
{ provide: LinkService, useValue: linkService }
56+
{ provide: LinkService, useValue: linkService },
57+
{ provide: AuthService, useClass: AuthServiceStub },
58+
{ provide: FileService, useClass: FileServiceStub },
59+
{ provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub },
60+
{ provide: ThemeService, useValue: getMockThemeService() },
4961
]
5062
})
5163
.compileComponents();

src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component.spec.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ import { CommunitySearchResult } from '../../../../../shared/object-collection/s
1616
import { Community } from '../../../../../core/shared/community.model';
1717
import { getCommunityEditRoute } from '../../../../../community-page/community-page-routing-paths';
1818
import { LinkService } from '../../../../../core/cache/builders/link.service';
19+
import { AuthService } from '../../../../../core/auth/auth.service';
20+
import { AuthServiceStub } from '../../../../../shared/testing/auth-service.stub';
21+
import { FileService } from '../../../../../core/shared/file.service';
22+
import { FileServiceStub } from '../../../../../shared/testing/file-service.stub';
23+
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
24+
import { AuthorizationDataServiceStub } from '../../../../../shared/testing/authorization-service.stub';
25+
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
26+
import { getMockThemeService } from '../../../../../shared/mocks/theme-service.mock';
1927

2028
describe('CommunityAdminSearchResultGridElementComponent', () => {
2129
let component: CommunityAdminSearchResultGridElementComponent;
@@ -47,7 +55,11 @@ describe('CommunityAdminSearchResultGridElementComponent', () => {
4755
providers: [
4856
{ provide: TruncatableService, useValue: mockTruncatableService },
4957
{ provide: BitstreamDataService, useValue: {} },
50-
{ provide: LinkService, useValue: linkService }
58+
{ provide: LinkService, useValue: linkService },
59+
{ provide: AuthService, useClass: AuthServiceStub },
60+
{ provide: FileService, useClass: FileServiceStub },
61+
{ provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub },
62+
{ provide: ThemeService, useValue: getMockThemeService() },
5163
],
5264
schemas: [NO_ERRORS_SCHEMA]
5365
})

src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.spec.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ import { getMockThemeService } from '../../../../../shared/mocks/theme-service.m
2020
import { ThemeService } from '../../../../../shared/theme-support/theme.service';
2121
import { AccessStatusDataService } from '../../../../../core/data/access-status-data.service';
2222
import { AccessStatusObject } from '../../../../../shared/object-list/access-status-badge/access-status.model';
23+
import { AuthService } from '../../../../../core/auth/auth.service';
24+
import { AuthServiceStub } from '../../../../../shared/testing/auth-service.stub';
25+
import { FileService } from '../../../../../core/shared/file.service';
26+
import { FileServiceStub } from '../../../../../shared/testing/file-service.stub';
27+
import { AuthorizationDataService } from '../../../../../core/data/feature-authorization/authorization-data.service';
28+
import { AuthorizationDataServiceStub } from '../../../../../shared/testing/authorization-service.stub';
2329

2430
describe('ItemAdminSearchResultGridElementComponent', () => {
2531
let component: ItemAdminSearchResultGridElementComponent;
@@ -64,6 +70,9 @@ describe('ItemAdminSearchResultGridElementComponent', () => {
6470
{ provide: BitstreamDataService, useValue: mockBitstreamDataService },
6571
{ provide: ThemeService, useValue: mockThemeService },
6672
{ provide: AccessStatusDataService, useValue: mockAccessStatusDataService },
73+
{ provide: AuthService, useClass: AuthServiceStub },
74+
{ provide: FileService, useClass: FileServiceStub },
75+
{ provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub },
6776
],
6877
schemas: [NO_ERRORS_SCHEMA]
6978
})

src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import { RouterTestingModule } from '@angular/router/testing';
1313
import { getCollectionEditRoute } from '../../../../../collection-page/collection-page-routing-paths';
1414
import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service';
1515
import { DSONameServiceMock } from '../../../../../shared/mocks/dso-name.service.mock';
16+
import { APP_CONFIG } from '../../../../../../config/app-config.interface';
17+
import { environment } from '../../../../../../environments/environment';
1618

1719
describe('CollectionAdminSearchResultListElementComponent', () => {
1820
let component: CollectionAdminSearchResultListElementComponent;
@@ -36,7 +38,8 @@ describe('CollectionAdminSearchResultListElementComponent', () => {
3638
],
3739
declarations: [CollectionAdminSearchResultListElementComponent],
3840
providers: [{ provide: TruncatableService, useValue: {} },
39-
{ provide: DSONameService, useClass: DSONameServiceMock }],
41+
{ provide: DSONameService, useClass: DSONameServiceMock },
42+
{ provide: APP_CONFIG, useValue: environment }],
4043
schemas: [NO_ERRORS_SCHEMA]
4144
})
4245
.compileComponents();

src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import { Community } from '../../../../../core/shared/community.model';
1313
import { getCommunityEditRoute } from '../../../../../community-page/community-page-routing-paths';
1414
import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service';
1515
import { DSONameServiceMock } from '../../../../../shared/mocks/dso-name.service.mock';
16+
import { APP_CONFIG } from '../../../../../../config/app-config.interface';
17+
import { environment } from '../../../../../../environments/environment';
1618

1719
describe('CommunityAdminSearchResultListElementComponent', () => {
1820
let component: CommunityAdminSearchResultListElementComponent;
@@ -36,7 +38,8 @@ describe('CommunityAdminSearchResultListElementComponent', () => {
3638
],
3739
declarations: [CommunityAdminSearchResultListElementComponent],
3840
providers: [{ provide: TruncatableService, useValue: {} },
39-
{ provide: DSONameService, useClass: DSONameServiceMock }],
41+
{ provide: DSONameService, useClass: DSONameServiceMock },
42+
{ provide: APP_CONFIG, useValue: environment }],
4043
schemas: [NO_ERRORS_SCHEMA]
4144
})
4245
.compileComponents();

src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import { ItemAdminSearchResultListElementComponent } from './item-admin-search-r
1010
import { Item } from '../../../../../core/shared/item.model';
1111
import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service';
1212
import { DSONameServiceMock } from '../../../../../shared/mocks/dso-name.service.mock';
13+
import { APP_CONFIG } from '../../../../../../config/app-config.interface';
14+
import { environment } from '../../../../../../environments/environment';
1315

1416
describe('ItemAdminSearchResultListElementComponent', () => {
1517
let component: ItemAdminSearchResultListElementComponent;
@@ -33,7 +35,8 @@ describe('ItemAdminSearchResultListElementComponent', () => {
3335
],
3436
declarations: [ItemAdminSearchResultListElementComponent],
3537
providers: [{ provide: TruncatableService, useValue: {} },
36-
{ provide: DSONameService, useClass: DSONameServiceMock }],
38+
{ provide: DSONameService, useClass: DSONameServiceMock },
39+
{ provide: APP_CONFIG, useValue: environment }],
3740
schemas: [NO_ERRORS_SCHEMA]
3841
})
3942
.compileComponents();

src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import { createSuccessfulRemoteDataObject$ } from '../../../../../shared/remote-
1818
import { getMockLinkService } from '../../../../../shared/mocks/link-service.mock';
1919
import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service';
2020
import { DSONameServiceMock } from '../../../../../shared/mocks/dso-name.service.mock';
21+
import { APP_CONFIG } from '../../../../../../config/app-config.interface';
22+
import { environment } from '../../../../../../environments/environment';
2123

2224
describe('WorkflowItemAdminWorkflowListElementComponent', () => {
2325
let component: WorkflowItemSearchResultAdminWorkflowListElementComponent;
@@ -51,7 +53,8 @@ describe('WorkflowItemAdminWorkflowListElementComponent', () => {
5153
providers: [
5254
{ provide: TruncatableService, useValue: mockTruncatableService },
5355
{ provide: LinkService, useValue: linkService },
54-
{ provide: DSONameService, useClass: DSONameServiceMock }
56+
{ provide: DSONameService, useClass: DSONameServiceMock },
57+
{ provide: APP_CONFIG, useValue: environment }
5558
],
5659
schemas: [NO_ERRORS_SCHEMA]
5760
})

src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, OnInit } from '@angular/core';
1+
import { Component, Inject, OnInit } from '@angular/core';
22
import { ViewMode } from '../../../../../core/shared/view-mode.model';
33
import { listableObjectComponent } from '../../../../../shared/object-collection/shared/listable-object/listable-object.decorator';
44
import { Context } from '../../../../../core/shared/context.model';
@@ -13,6 +13,7 @@ import { SearchResultListElementComponent } from '../../../../../shared/object-l
1313
import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service';
1414
import { WorkflowItemSearchResult } from '../../../../../shared/object-collection/shared/workflow-item-search-result.model';
1515
import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service';
16+
import { APP_CONFIG, AppConfig } from '../../../../../../config/app-config.interface';
1617

1718
@listableObjectComponent(WorkflowItemSearchResult, ViewMode.ListElement, Context.AdminWorkflowSearch)
1819
@Component({
@@ -32,9 +33,10 @@ export class WorkflowItemSearchResultAdminWorkflowListElementComponent extends S
3233

3334
constructor(private linkService: LinkService,
3435
protected truncatableService: TruncatableService,
35-
protected dsoNameService: DSONameService
36+
protected dsoNameService: DSONameService,
37+
@Inject(APP_CONFIG) protected appConfig: AppConfig
3638
) {
37-
super(truncatableService, dsoNameService);
39+
super(truncatableService, dsoNameService, appConfig);
3840
}
3941

4042
/**

0 commit comments

Comments
 (0)