Skip to content

Commit fd23044

Browse files
committed
Merge branch 'main' into task/main/DSC-1966
# Conflicts: # src/themes/dspace/app/header/header.component.html
2 parents 16e4ae5 + c2af23b commit fd23044

201 files changed

Lines changed: 1960 additions & 1245 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.

package-lock.json

Lines changed: 99 additions & 97 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@
102102
"@angular/platform-browser-dynamic": "^18.2.12",
103103
"@angular/platform-server": "^18.2.12",
104104
"@angular/router": "^18.2.12",
105-
"@angular/ssr": "^18.2.18",
106-
"@babel/runtime": "7.27.0",
105+
"@angular/ssr": "^18.2.19",
106+
"@babel/runtime": "7.27.1",
107107
"@kolkov/ngx-gallery": "^2.0.1",
108108
"@ng-bootstrap/ng-bootstrap": "^12.0.0",
109109
"@ng-dynamic-forms/core": "^16.0.0",
@@ -117,14 +117,14 @@
117117
"@terraformer/wkt": "^2.2.1",
118118
"altcha": "^0.9.0",
119119
"angulartics2": "^12.2.0",
120-
"axios": "^1.8.4",
120+
"axios": "^1.9.0",
121121
"bootstrap": "^5.3",
122122
"cerialize": "0.1.18",
123123
"cli-progress": "^3.12.0",
124124
"colors": "^1.4.0",
125125
"compression": "^1.7.5",
126126
"cookie-parser": "1.4.7",
127-
"core-js": "^3.41.0",
127+
"core-js": "^3.42.0",
128128
"date-fns": "^2.29.3",
129129
"date-fns-tz": "^1.3.7",
130130
"deepmerge": "^4.3.1",
@@ -135,7 +135,7 @@
135135
"filesize": "^10.1.6",
136136
"http-proxy-middleware": "^2.0.9",
137137
"http-terminator": "^3.2.0",
138-
"isbot": "^5.1.26",
138+
"isbot": "^5.1.27",
139139
"js-cookie": "2.2.1",
140140
"js-yaml": "^4.1.0",
141141
"json5": "^2.2.3",
@@ -168,21 +168,21 @@
168168
},
169169
"devDependencies": {
170170
"@angular-builders/custom-webpack": "~18.0.0",
171-
"@angular-devkit/build-angular": "^18.2.18",
171+
"@angular-devkit/build-angular": "^18.2.19",
172172
"@angular-eslint/builder": "^18.4.1",
173173
"@angular-eslint/bundled-angular-compiler": "^18.4.1",
174174
"@angular-eslint/eslint-plugin": "^18.4.1",
175175
"@angular-eslint/eslint-plugin-template": "^18.4.1",
176176
"@angular-eslint/schematics": "^18.4.1",
177177
"@angular-eslint/template-parser": "^18.4.1",
178178
"@angular-eslint/utils": "^18.4.1",
179-
"@angular/cli": "^18.2.18",
179+
"@angular/cli": "^18.2.19",
180180
"@angular/compiler-cli": "^18.2.12",
181181
"@angular/language-service": "^18.2.12",
182182
"@cypress/schematic": "^1.5.0",
183183
"@fortawesome/fontawesome-free": "^6.7.2",
184184
"@ngrx/store-devtools": "^18.1.1",
185-
"@ngtools/webpack": "^18.2.18",
185+
"@ngtools/webpack": "^18.2.19",
186186
"@types/deep-freeze": "0.1.5",
187187
"@types/ejs": "^3.1.2",
188188
"@types/express": "^4.17.17",
@@ -232,12 +232,12 @@
232232
"postcss-loader": "^4.0.3",
233233
"postcss-preset-env": "^7.4.2",
234234
"rimraf": "^3.0.2",
235-
"sass": "~1.86.3",
235+
"sass": "~1.87.0",
236236
"sass-loader": "^12.6.0",
237237
"sass-resources-loader": "^2.2.5",
238238
"ts-node": "^8.10.2",
239239
"typescript": "~5.4.5",
240-
"webpack": "5.99.6",
240+
"webpack": "5.99.7",
241241
"webpack-cli": "^5.1.4",
242242
"webpack-dev-server": "^4.15.1"
243243
}

src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ <h1 class="border-bottom pb-2">{{messagePrefix + '.create' | translate}}</h1>
3030
</div>
3131
}
3232
@if (canImpersonate$ | async) {
33-
<div between class="btn-group ms-1">
33+
<div between class="btn-group">
3434
@if (!isImpersonated) {
3535
<button class="btn btn-primary" type="button" (click)="impersonate()">
3636
<i class="fa fa-user-secret"></i> {{'admin.access-control.epeople.actions.impersonate' | translate}}

src/app/access-control/epeople-registry/eperson-form/eperson-form.component.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import {
2-
AsyncPipe,
3-
NgClass,
4-
} from '@angular/common';
1+
import { AsyncPipe } from '@angular/common';
52
import {
63
ChangeDetectorRef,
74
Component,
@@ -84,7 +81,6 @@ import { ValidateEmailNotTaken } from './validators/email-taken.validator';
8481
FormComponent,
8582
AsyncPipe,
8683
TranslateModule,
87-
NgClass,
8884
ThemedLoadingComponent,
8985
PaginationComponent,
9086
RouterLink,

src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@if (registryService.getActiveMetadataField() | async) {
1+
@if (activeMetadataField$ | async) {
22
<h2>{{messagePrefix + '.edit' | translate}}</h2>
33
} @else {
44
<h2>{{messagePrefix + '.create' | translate}}</h2>

src/app/admin/admin-registries/metadata-schema/metadata-field-form/metadata-field-form.component.ts

Lines changed: 62 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
TranslateModule,
2020
TranslateService,
2121
} from '@ngx-translate/core';
22-
import { combineLatest } from 'rxjs';
22+
import { Observable } from 'rxjs';
2323
import { take } from 'rxjs/operators';
2424

2525
import { MetadataField } from '../../../../core/metadata/metadata-field.model';
@@ -109,6 +109,8 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy {
109109
*/
110110
@Output() submitForm: EventEmitter<any> = new EventEmitter();
111111

112+
activeMetadataField$: Observable<MetadataField>;
113+
112114
constructor(public registryService: RegistryService,
113115
private formBuilderService: FormBuilderService,
114116
private translateService: TranslateService) {
@@ -117,71 +119,65 @@ export class MetadataFieldFormComponent implements OnInit, OnDestroy {
117119
/**
118120
* Initialize the component, setting up the necessary Models for the dynamic form
119121
*/
120-
ngOnInit() {
121-
combineLatest([
122-
this.translateService.get(`${this.messagePrefix}.element`),
123-
this.translateService.get(`${this.messagePrefix}.qualifier`),
124-
this.translateService.get(`${this.messagePrefix}.scopenote`),
125-
]).subscribe(([element, qualifier, scopenote]) => {
126-
this.element = new DynamicInputModel({
127-
id: 'element',
128-
label: element,
129-
name: 'element',
130-
validators: {
131-
required: null,
132-
pattern: '^[^. ,]*$',
133-
maxLength: 64,
134-
},
135-
required: true,
136-
errorMessages: {
137-
pattern: 'error.validation.metadata.element.invalid-pattern',
138-
maxLength: 'error.validation.metadata.element.max-length',
139-
},
140-
});
141-
this.qualifier = new DynamicInputModel({
142-
id: 'qualifier',
143-
label: qualifier,
144-
name: 'qualifier',
145-
validators: {
146-
pattern: '^[^. ,]*$',
147-
maxLength: 64,
148-
},
149-
required: false,
150-
errorMessages: {
151-
pattern: 'error.validation.metadata.qualifier.invalid-pattern',
152-
maxLength: 'error.validation.metadata.qualifier.max-length',
153-
},
154-
});
155-
this.scopeNote = new DynamicTextAreaModel({
156-
id: 'scopeNote',
157-
label: scopenote,
158-
name: 'scopeNote',
159-
required: false,
160-
rows: 5,
161-
});
162-
this.formModel = [
163-
new DynamicFormGroupModel(
164-
{
165-
id: 'metadatadatafieldgroup',
166-
group:[this.element, this.qualifier, this.scopeNote],
167-
}),
168-
];
169-
this.formGroup = this.formBuilderService.createFormGroup(this.formModel);
170-
this.registryService.getActiveMetadataField().subscribe((field: MetadataField): void => {
171-
if (field == null) {
172-
this.clearFields();
173-
} else {
174-
this.formGroup.patchValue({
175-
metadatadatafieldgroup: {
176-
element: field.element,
177-
qualifier: field.qualifier,
178-
scopeNote: field.scopeNote,
179-
},
180-
});
181-
this.element.disabled = true;
182-
this.qualifier.disabled = true;
183-
}
184-
});
122+
ngOnInit(): void {
123+
this.activeMetadataField$ = this.registryService.getActiveMetadataField();
124+
this.element = new DynamicInputModel({
125+
id: 'element',
126+
label: this.translateService.instant(`${this.messagePrefix}.element`),
127+
name: 'element',
128+
validators: {
129+
required: null,
130+
pattern: '^[^. ,]*$',
131+
maxLength: 64,
132+
},
133+
required: true,
134+
errorMessages: {
135+
pattern: 'error.validation.metadata.element.invalid-pattern',
136+
maxLength: 'error.validation.metadata.element.max-length',
137+
},
138+
});
139+
this.qualifier = new DynamicInputModel({
140+
id: 'qualifier',
141+
label: this.translateService.instant(`${this.messagePrefix}.qualifier`),
142+
name: 'qualifier',
143+
validators: {
144+
pattern: '^[^. ,]*$',
145+
maxLength: 64,
146+
},
147+
required: false,
148+
errorMessages: {
149+
pattern: 'error.validation.metadata.qualifier.invalid-pattern',
150+
maxLength: 'error.validation.metadata.qualifier.max-length',
151+
},
152+
});
153+
this.scopeNote = new DynamicTextAreaModel({
154+
id: 'scopeNote',
155+
label: this.translateService.instant(`${this.messagePrefix}.scopenote`),
156+
name: 'scopeNote',
157+
required: false,
158+
rows: 5,
159+
});
160+
this.formModel = [
161+
new DynamicFormGroupModel({
162+
id: 'metadatadatafieldgroup',
163+
group:[this.element, this.qualifier, this.scopeNote],
164+
}),
165+
];
166+
this.formGroup = this.formBuilderService.createFormGroup(this.formModel);
167+
this.registryService.getActiveMetadataField().subscribe((field: MetadataField): void => {
168+
if (field == null) {
169+
this.clearFields();
170+
} else {
171+
this.formGroup.patchValue({
172+
metadatadatafieldgroup: {
173+
element: field.element,
174+
qualifier: field.qualifier,
175+
scopeNote: field.scopeNote,
176+
},
177+
});
178+
this.element.disabled = true;
179+
this.qualifier.disabled = true;
180+
}
185181
});
186182
}
187183

src/app/app-routes.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,12 @@ export const APP_ROUTES: Route[] = [
109109
path: COMMUNITY_MODULE_PATH,
110110
loadChildren: () => import('./community-page/community-page-routes')
111111
.then((m) => m.ROUTES),
112-
data: { enableRSS: true },
113112
canActivate: [endUserAgreementCurrentUserGuard],
114113
},
115114
{
116115
path: COLLECTION_MODULE_PATH,
117116
loadChildren: () => import('./collection-page/collection-page-routes')
118117
.then((m) => m.ROUTES),
119-
data: { enableRSS: true },
120118
canActivate: [endUserAgreementCurrentUserGuard],
121119
},
122120
{

src/app/breadcrumbs/breadcrumbs.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
}
1313

1414
<ng-template #breadcrumb let-text="text" let-url="url">
15-
<li class="breadcrumb-item"><div class="breadcrumb-item-limiter"><a [routerLink]="url" class="text-truncate" [ngbTooltip]="text | translate" placement="bottom" >{{text | translate}}</a></div></li>
15+
<li class="breadcrumb-item"><div class="breadcrumb-item-limiter"><a [routerLink]="url" class="text-truncate" [ngbTooltip]="text | translate" placement="bottom" role="link" tabindex="0">{{text | translate}}</a></div></li>
1616
</ng-template>
1717

1818
<ng-template #activeBreadcrumb let-text="text">

src/app/browse-by/browse-by-taxonomy/browse-by-taxonomy.component.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ <h1>
2020
<a class="btn btn-primary"
2121
[routerLink]="['/search']"
2222
[queryParams]="queryParams"
23-
[queryParamsHandling]="'merge'">
23+
[queryParamsHandling]="'merge'"
24+
role="link"
25+
tabindex="0">
2426
{{ 'browse.taxonomy.button' | translate }}</a>
2527
</section>

src/app/collection-page/collection-page-routes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ export const ROUTES: Route[] = [
100100
data: {
101101
breadcrumbKey: 'collection.search',
102102
menuRoute: MenuRoute.COLLECTION_PAGE,
103+
enableRSS: true,
103104
},
104105
},
105106
{

0 commit comments

Comments
 (0)