From 9c3e3d9c29189b667d49473456e2e5d74ce099f2 Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Wed, 22 Nov 2023 14:51:17 +0100 Subject: [PATCH 01/10] 108608: Created new ScopeSelectorModal & ScopeSelectorModalCurrent context --- src/app/core/shared/context.model.ts | 2 ++ ...issue-sidebar-search-list-element.component.ts | 2 ++ ...olume-sidebar-search-list-element.component.ts | 2 ++ ...urnal-sidebar-search-list-element.component.ts | 2 ++ ...-unit-sidebar-search-list-element.component.ts | 2 ++ ...erson-sidebar-search-list-element.component.ts | 2 ++ ...oject-sidebar-search-list-element.component.ts | 2 ++ .../dso-selector/dso-selector.component.ts | 15 ++++++++++++++- ...ction-sidebar-search-list-element.component.ts | 2 ++ ...unity-sidebar-search-list-element.component.ts | 2 ++ ...ation-sidebar-search-list-element.component.ts | 4 ++-- .../scope-selector-modal.component.html | 4 +++- .../scope-selector-modal.component.ts | 4 ++++ 13 files changed, 41 insertions(+), 4 deletions(-) diff --git a/src/app/core/shared/context.model.ts b/src/app/core/shared/context.model.ts index 126896e3e1..18d40d9cb6 100644 --- a/src/app/core/shared/context.model.ts +++ b/src/app/core/shared/context.model.ts @@ -15,4 +15,6 @@ export enum Context { AdminWorkflowSearch = 'adminWorkflowSearch', SideBarSearchModal = 'sideBarSearchModal', SideBarSearchModalCurrent = 'sideBarSearchModalCurrent', + ScopeSelectorModal = 'scopeSelectorModal', + ScopeSelectorModalCurrent = 'scopeSelectorModalCurrent', } diff --git a/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-issue/journal-issue-sidebar-search-list-element.component.ts b/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-issue/journal-issue-sidebar-search-list-element.component.ts index 84764e9e60..733cadf0c5 100644 --- a/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-issue/journal-issue-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-issue/journal-issue-sidebar-search-list-element.component.ts @@ -9,6 +9,8 @@ import { isNotEmpty } from '../../../../../shared/empty.util'; @listableObjectComponent('JournalIssueSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('JournalIssueSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent('JournalIssueSearchResult', ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent('JournalIssueSearchResult', ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-journal-issue-sidebar-search-list-element', templateUrl: '../../../../../shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html' diff --git a/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-volume/journal-volume-sidebar-search-list-element.component.ts b/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-volume/journal-volume-sidebar-search-list-element.component.ts index 7af5487f40..cebb3c1542 100644 --- a/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-volume/journal-volume-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal-volume/journal-volume-sidebar-search-list-element.component.ts @@ -9,6 +9,8 @@ import { isNotEmpty } from '../../../../../shared/empty.util'; @listableObjectComponent('JournalVolumeSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('JournalVolumeSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent('JournalVolumeSearchResult', ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent('JournalVolumeSearchResult', ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-journal-volume-sidebar-search-list-element', templateUrl: '../../../../../shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html' diff --git a/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component.ts b/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component.ts index 4a26b293d9..a3cdaf24a3 100644 --- a/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/journal-entities/item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component.ts @@ -9,6 +9,8 @@ import { isNotEmpty } from '../../../../../shared/empty.util'; @listableObjectComponent('JournalSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('JournalSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent('JournalSearchResult', ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent('JournalSearchResult', ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-journal-sidebar-search-list-element', templateUrl: '../../../../../shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html' diff --git a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/org-unit/org-unit-sidebar-search-list-element.component.ts b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/org-unit/org-unit-sidebar-search-list-element.component.ts index 17e9790593..2e1d88bf03 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/org-unit/org-unit-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/org-unit/org-unit-sidebar-search-list-element.component.ts @@ -8,6 +8,8 @@ import { Item } from '../../../../../core/shared/item.model'; @listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-org-unit-sidebar-search-list-element', templateUrl: '../../../../../shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html' diff --git a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts index 281f22ddb4..2d56d79438 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts @@ -13,6 +13,8 @@ import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service @listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-person-sidebar-search-list-element', templateUrl: '../../../../../shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html' diff --git a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component.ts b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component.ts index 6fbb9d26fc..233216f206 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component.ts @@ -8,6 +8,8 @@ import { Item } from '../../../../../core/shared/item.model'; @listableObjectComponent('ProjectSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('ProjectSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent('ProjectSearchResult', ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent('ProjectSearchResult', ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-project-sidebar-search-list-element', templateUrl: '../../../../../shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.html' diff --git a/src/app/shared/dso-selector/dso-selector/dso-selector.component.ts b/src/app/shared/dso-selector/dso-selector/dso-selector.component.ts index 82ad095cd4..64ee2278c6 100644 --- a/src/app/shared/dso-selector/dso-selector/dso-selector.component.ts +++ b/src/app/shared/dso-selector/dso-selector/dso-selector.component.ts @@ -50,6 +50,12 @@ export class DSOSelectorComponent implements OnInit, OnDestroy { * The view mode of the listed objects */ viewMode = ViewMode.ListElement; + + /** + * The current context + */ + @Input() context: Context; + /** * The initially selected DSO's uuid */ @@ -243,7 +249,14 @@ export class DSOSelectorComponent implements OnInit, OnDestroy { /** * Get the context for element with the given id */ - getContext(id: string) { + getContext(id: string): Context { + if (this.context === Context.ScopeSelectorModal) { + if (id === this.currentDSOId) { + return Context.ScopeSelectorModalCurrent; + } else { + return Context.ScopeSelectorModal; + } + } if (id === this.currentDSOId) { return Context.SideBarSearchModalCurrent; } else { diff --git a/src/app/shared/object-list/sidebar-search-list-element/collection/collection-sidebar-search-list-element.component.ts b/src/app/shared/object-list/sidebar-search-list-element/collection/collection-sidebar-search-list-element.component.ts index 13703240f4..b94b3766c3 100644 --- a/src/app/shared/object-list/sidebar-search-list-element/collection/collection-sidebar-search-list-element.component.ts +++ b/src/app/shared/object-list/sidebar-search-list-element/collection/collection-sidebar-search-list-element.component.ts @@ -8,6 +8,8 @@ import { SidebarSearchListElementComponent } from '../sidebar-search-list-elemen @listableObjectComponent(CollectionSearchResult, ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent(CollectionSearchResult, ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent(CollectionSearchResult, ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent(CollectionSearchResult, ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-collection-sidebar-search-list-element', templateUrl: '../sidebar-search-list-element.component.html' diff --git a/src/app/shared/object-list/sidebar-search-list-element/community/community-sidebar-search-list-element.component.ts b/src/app/shared/object-list/sidebar-search-list-element/community/community-sidebar-search-list-element.component.ts index 14c8ec09cd..b50e2c6980 100644 --- a/src/app/shared/object-list/sidebar-search-list-element/community/community-sidebar-search-list-element.component.ts +++ b/src/app/shared/object-list/sidebar-search-list-element/community/community-sidebar-search-list-element.component.ts @@ -8,6 +8,8 @@ import { Community } from '../../../../core/shared/community.model'; @listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent(CommunitySearchResult, ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-collection-sidebar-search-list-element', templateUrl: '../sidebar-search-list-element.component.html' diff --git a/src/app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component.ts b/src/app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component.ts index 0822accc50..f77263df40 100644 --- a/src/app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component.ts +++ b/src/app/shared/object-list/sidebar-search-list-element/item-types/publication/publication-sidebar-search-list-element.component.ts @@ -8,8 +8,8 @@ import { SidebarSearchListElementComponent } from '../../sidebar-search-list-ele @listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModal) @listableObjectComponent('PublicationSearchResult', ViewMode.ListElement, Context.SideBarSearchModalCurrent) -@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.SideBarSearchModal) -@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.SideBarSearchModalCurrent) +@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.ScopeSelectorModal) +@listableObjectComponent(ItemSearchResult, ViewMode.ListElement, Context.ScopeSelectorModalCurrent) @Component({ selector: 'ds-publication-sidebar-search-list-element', templateUrl: '../../sidebar-search-list-element.component.html' diff --git a/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html b/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html index bf5c15e963..2d8763383b 100644 --- a/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html +++ b/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.html @@ -14,6 +14,8 @@
{{'dso-selector.' + action + '.' + objectType.toString().toLowerCase() + '.input-header' | translate}}
- + + diff --git a/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.ts b/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.ts index 86c3010287..e610d997c7 100644 --- a/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.ts +++ b/src/app/shared/search-form/scope-selector-modal/scope-selector-modal.component.ts @@ -4,6 +4,7 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; import { DSpaceObjectType } from '../../../core/shared/dspace-object-type.model'; import { DSOSelectorModalWrapperComponent, SelectorActionType } from '../../dso-selector/modal-wrappers/dso-selector-modal-wrapper.component'; import { DSpaceObject } from '../../../core/shared/dspace-object.model'; +import { Context } from '../../../core/shared/context.model'; /** * Component to wrap a button - to select the entire repository - @@ -17,6 +18,9 @@ import { DSpaceObject } from '../../../core/shared/dspace-object.model'; templateUrl: './scope-selector-modal.component.html', }) export class ScopeSelectorModalComponent extends DSOSelectorModalWrapperComponent implements OnInit { + + readonly Context = Context; + objectType = DSpaceObjectType.COMMUNITY; /** * The types of DSO that can be selected from this list From 449c092bf965bfb1319ac72fa26ce3408347101d Mon Sep 17 00:00:00 2001 From: Ray Lee Date: Thu, 1 Feb 2024 16:59:50 -0500 Subject: [PATCH 02/10] Add support for SAML authentication. --- src/app/core/auth/models/auth.method-type.ts | 3 ++- src/app/core/auth/models/auth.method.ts | 5 +++++ src/app/shared/log-in/methods/log-in.methods-decorator.ts | 1 + src/assets/i18n/en.json5 | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/app/core/auth/models/auth.method-type.ts b/src/app/core/auth/models/auth.method-type.ts index 594d6d8b39..87871f433e 100644 --- a/src/app/core/auth/models/auth.method-type.ts +++ b/src/app/core/auth/models/auth.method-type.ts @@ -5,5 +5,6 @@ export enum AuthMethodType { Ip = 'ip', X509 = 'x509', Oidc = 'oidc', - Orcid = 'orcid' + Orcid = 'orcid', + Saml = 'saml' } diff --git a/src/app/core/auth/models/auth.method.ts b/src/app/core/auth/models/auth.method.ts index b84e7a308a..5ff5532cea 100644 --- a/src/app/core/auth/models/auth.method.ts +++ b/src/app/core/auth/models/auth.method.ts @@ -40,6 +40,11 @@ export class AuthMethod { this.location = location; break; } + case 'saml': { + this.authMethodType = AuthMethodType.Saml; + this.location = location; + break; + } default: { break; diff --git a/src/app/shared/log-in/methods/log-in.methods-decorator.ts b/src/app/shared/log-in/methods/log-in.methods-decorator.ts index 79a53fcb8f..e714d03e3e 100644 --- a/src/app/shared/log-in/methods/log-in.methods-decorator.ts +++ b/src/app/shared/log-in/methods/log-in.methods-decorator.ts @@ -11,6 +11,7 @@ export const AUTH_METHOD_FOR_DECORATOR_MAP = new Map Date: Fri, 27 Dec 2024 13:14:30 +0100 Subject: [PATCH 03/10] change search filter isOpenByDefault autoserialization https://github.com/DSpace/DSpace/issues/9404 --- src/app/shared/search/models/search-filter-config.model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/search/models/search-filter-config.model.ts b/src/app/shared/search/models/search-filter-config.model.ts index 4498ba5763..5ec6b0720f 100644 --- a/src/app/shared/search/models/search-filter-config.model.ts +++ b/src/app/shared/search/models/search-filter-config.model.ts @@ -52,7 +52,7 @@ export class SearchFilterConfig implements CacheableObject { /** * Defines if the item facet is collapsed by default or not on the search page */ - @autoserialize + @autoserializeAs(Boolean, 'openByDefault') isOpenByDefault: boolean; /** From 4dcc7c282d08a2fdc36cadeedb3a603979d282b6 Mon Sep 17 00:00:00 2001 From: "Gantner, Florian Klaus" Date: Sat, 28 Dec 2024 12:58:18 +0100 Subject: [PATCH 04/10] translation keys for datacite project import https://github.com/DSpace/DSpace/issues/9636 --- src/assets/i18n/en.json5 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 249544cbd5..48234a6322 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -2808,6 +2808,8 @@ "item.preview.dc.date.issued": "Published date:", + "item.preview.dc.description": "Description:", + "item.preview.dc.description.abstract": "Abstract:", "item.preview.dc.identifier.other": "Other identifier:", @@ -2846,6 +2848,8 @@ "item.preview.project.funder.identifier": "Funder Identifier:", + "item.preview.project.investigator": "Project Investigator", + "item.preview.oaire.awardNumber": "Funding ID:", "item.preview.dc.title.alternative": "Acronym:", @@ -4792,6 +4796,8 @@ "submission.import-external.source.datacite": "DataCite", + "submission.import-external.source.dataciteProject": "DataCite", + "submission.import-external.source.doi": "DOI", "submission.import-external.source.scielo": "SciELO", From 4d85639f31f5e94288f9021465d3d9f023346b27 Mon Sep 17 00:00:00 2001 From: Sascha Szott Date: Wed, 5 Feb 2025 17:38:57 +0100 Subject: [PATCH 05/10] fixed deprecated import of TransferState --- src/ngx-translate-loaders/translate-server.loader.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ngx-translate-loaders/translate-server.loader.ts b/src/ngx-translate-loaders/translate-server.loader.ts index d86251e008..8950b91a6b 100644 --- a/src/ngx-translate-loaders/translate-server.loader.ts +++ b/src/ngx-translate-loaders/translate-server.loader.ts @@ -1,4 +1,4 @@ -import { TransferState } from '@angular/platform-browser'; +import { TransferState } from '@angular/core'; import { TranslateLoader } from '@ngx-translate/core'; import { readFileSync } from 'fs'; import { From 0437ec4c3f5d13dbe83bbfecfd2482e9be787322 Mon Sep 17 00:00:00 2001 From: Pierre Lasou Date: Fri, 21 Feb 2025 15:43:59 -0500 Subject: [PATCH 06/10] Addtion to the fr.json5 following version 8.1 Adding and changing parameters after upgrading to 8.1. --- src/assets/i18n/fr.json5 | 116 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 4 deletions(-) diff --git a/src/assets/i18n/fr.json5 b/src/assets/i18n/fr.json5 index ea45f5b2fe..b6cd2fc905 100644 --- a/src/assets/i18n/fr.json5 +++ b/src/assets/i18n/fr.json5 @@ -1471,11 +1471,11 @@ // "browse.startsWith.type_text": "Type the first few letters and click on the Browse button", "browse.startsWith.type_text": "Ou saisir les premières lettres puis cliquer sur le bouton « Parcourir »", - // "browse.title": "Browsing {{ collection }} by {{ field }} {{ value }}", - "browse.title": "Parcourir la collection {{ collection }} par {{ field }} {{ value }}", + // "browse.title": "Browsing by {{ field }}{{ startsWith }} {{ value }}", + "browse.title": "Parcourir par {{ field }}{{ startsWith }} {{ value }}", - //"browse.title.page": "Browsing {{ collection }} by {{ field }} {{ value }}", - "browse.title.page": "Parcourir la collection {{ collection }} par {{ field }} {{ value }}", + //"browse.title.page": "Browsing by {{ field }} {{ value }}", + "browse.title.page": "Parcourir par {{ field }} {{ value }}", //"search.browse.item-back": "Back to Results", "search.browse.item-back": "Retour aux résultats", @@ -2682,6 +2682,66 @@ // "grant-request-copy.success": "Successfully granted item request", "grant-request-copy.success": "Demande de copie de document acceptée avec succès", + //"health.breadcrumbs": "Health", + "health.breadcrumbs": "Santé du système", + + // "health-page.heading": "Health", + "health-page.heading": "Santé", + + // "health-page.info-tab": "Info", + "health-page.info-tab": "Info", + + //"health-page.status-tab": "Status", + "health-page.status-tab": "Statut", + + //"health-page.error.msg": "The health check service is temporarily unavailable", + "health-page.error.msg": "Le service de vérification de la santé du système n'est pas disponible", + + //"health-page.property.status": "Status code", + "health-page.property.status": "Code de statut", + + //"health-page.section.db.title": "Database", + "health-page.section.db.title": "Base de données", + + // "health-page.section.geoIp.title": "GeoIp", + "health-page.section.geoIp.title": "GeoIp", + + // "health-page.section.solrAuthorityCore.title": "Solr: authority core", + "health-page.section.solrAuthorityCore.title": "Solr: authority core", + + //"health-page.section.solrOaiCore.title": "Solr: oai core", + "health-page.section.solrOaiCore.title": "Solr: oai core", + + // "health-page.section.solrSearchCore.title": "Solr: search core", + "health-page.section.solrSearchCore.title": "Solr: search core", + + // "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + "health-page.section.solrStatisticsCore.title": "Solr: statistics core", + + //"health-page.section-info.app.title": "Application Backend", + "health-page.section-info.app.title": "Application Backend", + + //"health-page.section-info.java.title": "Java", + "health-page.section-info.java.title": "Java", + + //"health-page.status": "Status", + "health-page.status": "Statut", + + //"health-page.status.ok.info": "Operational", + "health-page.status.ok.info": "Opérationnel", + + //"health-page.status.error.info": "Problems detected", + "health-page.status.error.info": "Problèmes détectés", + + //"health-page.status.warning.info": "Possible issues detected", + "health-page.status.warning.info": "Problèmes éventuels détectés", + + // "health-page.title": "Health", + "health-page.title": "Santé du système", + + // "health-page.section.no-issues": "No issues detected", + "health-page.section.no-issues": "Aucun problème détecté", + // "home.description": "", "home.description": "", @@ -3972,6 +4032,9 @@ // "menu.section.access_control_authorizations": "Authorizations", "menu.section.access_control_authorizations": "Autorisations", + // "menu.section.access_control_bulk": "Bulk Access Management", + "menu.section.access_control_bulk": "Gestion des accès en lot", + // "menu.section.access_control_groups": "Groups", "menu.section.access_control_groups": "Groupes", @@ -4590,9 +4653,39 @@ // "process.overview.table.name": "Name", "process.overview.table.name": "Nom", + //"process.overview.table.running.info": "Start time (UTC)", + "process.overview.table.running.info": "Heure de fin (UTC)", + + // "process.overview.table.running.title": "Running processes", + "process.overview.table.running.title": "Processus en cours", + + //"process.overview.table.scheduled.info": "Creation time (UTC)", + "process.overview.table.scheduled.info": "Heure de création (UTC)", + + // "process.overview.table.scheduled.title": "Scheduled processes", + "process.overview.table.scheduled.title": "Processus planifiés", + // "process.overview.table.start": "Start time (UTC)", "process.overview.table.start": "Heure de début (TUC)", + // "process.overview.table.completed.info": "Finish time (UTC)", + "process.overview.table.completed.info": "Heure de fin (UTC)", + + //"process.overview.table.completed.title": "Succeeded processes", + "process.overview.table.completed.title": "Processus terminés", + + // "process.overview.table.empty": "No matching processes found.", + "process.overview.table.empty": "Aucun processus trouvé.", + + // "process.overview.table.failed.info": "Finish time (UTC)", + "process.overview.table.failed.info": "Heure de fin (UTC)", + + // "process.overview.table.failed.title": "Failed processes", + "process.overview.table.failed.title": "Processus en échec", + + // "process.overview.table.finish": "Finish time (UTC)", + "process.overview.table.finish": "Heure de fin (UTC)", + // "process.overview.table.status": "Status", "process.overview.table.status": "Statut", @@ -5648,6 +5741,9 @@ // "submission.import-external.source.crossref": "Crossref", "submission.import-external.source.crossref": "Crossref (DOI)", + //"submission.import-external.source.doi": "DOI", + "submission.import-external.source.doi": "DOI", + //"submission.import-external.source.datacite": "DataCite", "submission.import-external.source.datacite": "DataCite (DOI)", @@ -6532,6 +6628,9 @@ //"submitter.empty": "N/A", "submitter.empty": "S/O", + //"subscriptions.title": "Subscriptions", + "subscriptions.title": "Abonnements", + //"subscriptions.modal.title": "Subscriptions", "subscriptions.modal.title": "Abonnements", @@ -8440,6 +8539,15 @@ //"search.filters.filter.notifyEndorsement.label": "Search Notify Endorsement", "search.filters.filter.notifyEndorsement.label": "Chercher l'approbation Notify", + // "form.date-picker.placeholder.year": "Year", + "form.date-picker.placeholder.year": "Année", + + // "form.date-picker.placeholder.month": "Month", + "form.date-picker.placeholder.month": "Mois", + + // "form.date-picker.placeholder.day": "Day", + "form.date-picker.placeholder.day": "Jour", + //"item.page.cc.license.title": "Creative Commons license", "item.page.cc.license.title": "Licence Creative Commons", From 0251aaa3f8e7cf707830d06696762168eff8025b Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Wed, 26 Feb 2025 08:47:35 +0300 Subject: [PATCH 07/10] src/app/core: add citation_doi tag to head meta This is used by harvesters like Altmetric and was present in DSpace version 6 and previous. --- src/app/core/metadata/head-tag.service.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/core/metadata/head-tag.service.ts b/src/app/core/metadata/head-tag.service.ts index 8041bb3a4a..6c8d9fd432 100644 --- a/src/app/core/metadata/head-tag.service.ts +++ b/src/app/core/metadata/head-tag.service.ts @@ -186,6 +186,7 @@ export class HeadTagService { this.setCitationKeywordsTag(); this.setCitationAbstractUrlTag(); + this.setCitationDoiTag(); this.setCitationPdfUrlTag(); this.setCitationPublisherTag(); @@ -319,6 +320,18 @@ export class HeadTagService { } } + /** + * Add to the + */ + protected setCitationDoiTag(): void { + if (this.currentObject.value instanceof Item) { + const doi = this.getMetaTagValue('dc.identifier.doi'); + if (hasValue(doi)) { + this.addMetaTag('citation_doi', doi); + } + } + } + /** * Add to the */ From f28dc8bf72ea5388dee45ab3fe7c58869326911e Mon Sep 17 00:00:00 2001 From: Alan Orth Date: Wed, 26 Feb 2025 08:47:48 +0300 Subject: [PATCH 08/10] src/app/core: remove unnecessary comment Remove commented out this.setCitationDOITag() since it is not used and we use camel case with this.setCitationDoiTag() now anyway. --- src/app/core/metadata/head-tag.service.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/core/metadata/head-tag.service.ts b/src/app/core/metadata/head-tag.service.ts index 6c8d9fd432..d52efb8fa1 100644 --- a/src/app/core/metadata/head-tag.service.ts +++ b/src/app/core/metadata/head-tag.service.ts @@ -199,7 +199,6 @@ export class HeadTagService { // this.setCitationIssueTag(); // this.setCitationFirstPageTag(); // this.setCitationLastPageTag(); - // this.setCitationDOITag(); // this.setCitationPMIDTag(); // this.setCitationFullTextTag(); From e0240259ec9a777c18b53bf951bc1341f8f2e5c5 Mon Sep 17 00:00:00 2001 From: Wout-atmire Date: Wed, 5 Mar 2025 19:15:51 +0100 Subject: [PATCH 09/10] Upgrade to Bootstrap 5 & realign themes (#3506) * 117631: upgraded bootstrap, ng-bootstrap and installed popper.js * 117631: SASS to CSS variables * 117631: Bootstrap 4 to 5 html/css fixes * 117631: Theming fixes after bootstrap upgrade * 117631: More theming fixes: accordions, spacing, search components etc * 117631: Fixed tests * 117631: Fixed offset issues * 117631: Fixed contrast ratio issue * 117631: Fixed variables, removed unnecessary mapping, fixed tables, upgraded to Bootstrap 5.3.3 * 118113: vertical footer deviders * 118113: remove button shadow * 118113: old checkboxes * 118113: Custom icons font-family * 118113: accordion color * 118113: table striped customizable background-color * 118113: revert vertical deviders in footer bs-secondary change * 118113: modal close button * 118113: add w-100 to btn-block elements * 118113: border radius * 118113: The date selector on the submission page gets squished to the side of its label fix * 118113: adding margins to dynamic-form-control-containers * 118113: adding gaps between sections of item submission form * 118113: icon font-family removed !important * 118113: removed !important from #legend_dc_date_issued * 118113: move --bs-border-radius to $bs-border-radius * 118113: remove new SCSS variable * 118113: reduce size for Item type labels * 118113: date picker border - transparent * 118113: drag-item-container elements on same line * 118113: specific border color for ds-number-picker buttons * Simplify variables & styles * 118627: html files * Fix new SCSS compile issues, remove yarn.lock * 118627: remove footer button shadow * 118627: custom login button radius * 118627: success button - white text * 118627: table alternate colors * Fix ghostly Bootstrap version, again * Override (ng-)bootstrap versions for @ng-dynamic-forms * 118627: Feedback - fix login button radius * 118627: Feedback - fix footer button shadows * 118627: Feedback - login border radius use $bs-border-radius-lg + change to rem * 118627: Tooltip issue * 118627: Metadata white authority badge * 118627: Align Back button * 118627: Bitstreams under Item's Metadata issue fix * 118627: select on edit collection page "arrow icon" * 118627: fix alignment issues * 118627: fix admin sidebar "Managment" label * 118627: Feedback - login button * 118627: Line above table heads * 118627: Remove HMTL accordion expandable arrow * 118627: bitstream table * 118627: notification "close button" * 118627: faint border/shadow around the expand buttons on hierarchical browse pages * 118627: tooltip margin * 118627: Bootstrap 5 changed the default gutter size to 24px * 118627: custom-aligning -> custom-alignment * 118627: lint-fix * 118627: lint fix * 118627: e2e Fix with new "btn-close" * 118627: e2e Fix heading order for access-control-form-container * 118627: access-control-form-container mr-4 to me-4 * 118627: update mr to me & ml to ms & pr to ps & pl to ps * 118627: Access Control "Mode" radiobuttons under Text * 118627: Item submission Publisher select icon positioning * 118627: resolved merge conflict with main (and npm install) * 118627: cherrypicking 3553 commits * Remove unused angular-idle-preload (cherry picked from commit fef5dd72b30ca6174587f1a7dea8994f1e96bbc9) * 118627: npm install - to fix package-lock.json * 120594: hamberger menu not showing fix * 120594: big logo header issue * 120594: remove faint shadow * 120594: btn-transparent class * 120594: badge-* to bg-* * 120594: add padding-right & -left for rounded-pill * 120594: update test variables to fit the new bootstrap variables * 120594: add missing rss conditions * 120594: fix white badges * 118627: remove shadow on number-picker * 120594: revert white badge fix * 120594: re-add dropdown-button in dynamic-lookup-relation-search-tab * 120594: remove default radio button styling * 120594: full width radio buttons * 120594: edit collection page alignment * 120594: bg -> bg-primary * 120594: revert to old info color * 120594: revert media breakpoints * 120594: recover PR 3227 rss * 120594: remove login & logout from PR * 120594: ds-filter input & label gap * 120594: ds-filter aligning rows * 120594: remove navbar.module.ts * 120594: remove item-edit-bitstream.component.html * 120594: remove item-edit-bitstream-drag-handle.component.html * 120594: Fix vocabulary-treeview styling * 120594: Remove unused browse-by-metadata-page.component.html * 120594: red invalid input label * 120594: use old link color for number-picker: #1f7293 * 120594: move $theme-colors to sass override * 120594: spacing for upload icon * 120594: decrease media-breakpoint-down * 120594: PR 3227 rss * 120594: merge in main bootstrap variable mappings * 120594: restore all mapped variable that have a value * 120594: fix unset variable item-edit-bitstream-bundle.component.scss * 120594: old tooltip color * 120594: edit bitstream render text inline with the icon * Revert "120594: merge in main bootstrap variable mappings" This reverts commit 4e61b5fb * 120594: add non-default mapped variables with references * 120594: add docs in _bootstrap_variables_mapping.scss * 120594: use bootstrap variables instead of hardcoded values --------- Co-authored-by: lotte Co-authored-by: Yura Bondarenko Co-authored-by: Yury Bondarenko Co-authored-by: Tim Donohue --- cypress/e2e/submission.cy.ts | 2 +- package-lock.json | 49 +- package.json | 8 +- .../browse/bulk-access-browse.component.html | 14 +- .../browse/bulk-access-browse.component.scss | 4 + .../bulk-access/bulk-access.component.html | 2 +- .../bulk-access-settings.component.html | 8 +- .../epeople-registry.component.html | 12 +- .../eperson-form/eperson-form.component.html | 2 +- .../members-list/members-list.component.html | 4 +- .../subgroups-list.component.html | 6 +- .../groups-registry.component.html | 8 +- .../batch-import-page.component.html | 6 +- .../metadata-import-page.component.html | 2 +- .../ldn-service-form.component.html | 8 +- .../ldn-services-directory.component.html | 4 +- .../admin-notify-logs-result.component.html | 2 +- .../bitstream-formats.component.html | 4 +- .../format-form/format-form.component.ts | 2 +- .../metadata-registry.component.html | 4 +- .../metadata-schema.component.html | 2 +- .../filters-section.component.html | 2 +- .../filters-section.component.scss | 8 + ...vision-order-group-selector.component.html | 9 +- .../supervision-order-status.component.html | 2 +- ...admin-workflow-grid-element.component.html | 4 +- ...admin-workflow-grid-element.component.html | 4 +- ...admin-workflow-list-element.component.html | 2 +- ...admin-workflow-list-element.component.html | 2 +- .../bitstream-authorizations.component.html | 4 +- .../edit-bitstream-page.component.ts | 10 +- .../breadcrumbs/breadcrumbs.component.scss | 2 + .../collection-page.component.html | 2 +- .../delete-collection-page.component.html | 4 +- .../collection-roles.component.html | 14 +- .../collection-source-controls.component.html | 8 +- .../collection-source.component.html | 4 +- .../edit-collection-page.component.scss | 9 + .../edit-collection-page.component.ts | 1 + .../community-list.component.html | 6 +- .../community-page.component.html | 2 +- .../delete-community-page.component.html | 4 +- .../community-roles.component.html | 14 +- .../curation-form.component.html | 8 +- .../dso-edit-metadata-cells.scss | 12 +- .../dso-edit-metadata-value.component.html | 6 +- .../dso-edit-metadata-value.component.scss | 3 + .../dso-edit-metadata.component.html | 12 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- .../journal-issue.component.html | 2 +- .../journal-volume.component.html | 2 +- .../item-pages/journal/journal.component.html | 4 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- .../org-unit/org-unit.component.html | 4 +- .../item-pages/person/person.component.html | 4 +- .../item-pages/project/project.component.html | 2 +- ...ult-list-submission-element.component.html | 2 +- .../name-variant-modal.component.html | 3 +- .../name-variant-modal.component.spec.ts | 2 +- src/app/footer/footer.component.html | 2 +- src/app/footer/footer.component.scss | 4 + .../forgot-password-form.component.html | 2 +- src/app/header/header.component.html | 2 +- .../health-info-component.component.html | 2 +- .../health-info/health-info.component.html | 12 +- .../health-component.component.html | 2 +- .../health-panel/health-panel.component.html | 12 +- .../health-status.component.html | 6 +- .../home-news/home-news.component.html | 4 +- .../home-news/home-news.component.scss | 2 +- .../recent-item-list.component.html | 2 +- .../end-user-agreement.component.html | 4 +- .../feedback-form.component.html | 8 +- ...tstream-request-a-copy-page.component.html | 16 +- .../upload/upload-bitstream.component.html | 6 +- .../edit-item-page.component.html | 2 +- .../item-bitstreams.component.html | 4 +- .../item-edit-bitstream-bundle.component.html | 2 +- .../item-edit-bitstream-bundle.component.scss | 15 +- .../item-delete/item-delete.component.html | 7 +- .../item-move/item-move.component.html | 4 +- .../item-operation.component.html | 4 +- .../item-register-doi-component.html | 2 +- .../edit-relationship-list.component.html | 2 +- .../edit-relationship.component.html | 2 +- .../item-relationships.component.html | 2 +- .../item-status/item-status.component.html | 12 +- .../virtual-metadata.component.html | 5 +- .../virtual-metadata.component.spec.ts | 2 +- .../full/full-item-page.component.html | 6 +- .../orcid-auth/orcid-auth.component.html | 6 +- .../orcid-page/orcid-page.component.html | 2 +- .../orcid-sync-settings.component.html | 20 +- .../file-section/file-section.component.html | 2 +- .../item-page/simple/item-page.component.scss | 2 +- .../publication/publication.component.html | 2 +- .../untyped-item/untyped-item.component.html | 2 +- ...etadata-representation-list.component.html | 4 +- .../qa-event-notification.component.html | 2 +- .../related-items.component.html | 4 +- .../item-versions-delete-modal.component.html | 3 +- ...ersions-row-element-version.component.html | 4 +- ...item-versions-summary-modal.component.html | 11 +- .../versions/item-versions.component.html | 4 +- src/app/login-page/login-page.component.html | 2 +- .../logout-page/logout-page.component.html | 2 +- .../collection-selector.component.html | 3 +- ...space-new-external-dropdown.component.html | 4 +- ...ace-new-submission-dropdown.component.html | 4 +- ...ace-qa-events-notifications.component.html | 2 +- .../expandable-navbar-section.component.scss | 4 +- src/app/navbar/navbar.component.html | 2 +- .../quality-assurance-events.component.html | 20 +- .../quality-assurance-source.component.html | 2 +- .../quality-assurance-topics.component.html | 2 +- .../suggestion-actions.component.html | 4 +- .../suggestions-popup.component.html | 2 +- .../detail/process-detail.component.html | 12 +- .../form/process-form.component.html | 4 +- .../parameter-select.component.html | 4 +- .../file-value-input.component.html | 4 +- .../process-parameters.component.html | 4 +- .../scripts-select.component.html | 2 +- .../overview/process-overview.component.html | 14 +- .../process-overview-table.component.html | 4 +- .../profile-claim-item-modal.component.html | 7 +- ...rofile-page-researcher-form.component.html | 6 +- .../profile-page/profile-page.component.html | 2 +- .../register-email-form.component.html | 4 +- .../create-profile.component.html | 14 +- .../email-request-copy.component.html | 10 +- .../search-navbar.component.html | 2 +- .../search-navbar.component.scss | 3 +- .../access-control-array-form.component.html | 8 +- ...cess-control-form-container.component.html | 12 +- ...cess-control-form-container.component.scss | 5 + ...rol-select-bitstreams-modal.component.html | 3 +- src/app/shared/alert/alert.component.html | 3 +- src/app/shared/alert/alert.component.scss | 2 +- src/app/shared/alert/alert.component.spec.ts | 2 +- src/app/shared/animations/slide.ts | 1 - .../auth-nav-menu.component.html | 4 +- .../collection-dropdown.component.html | 4 +- .../comcol-form/comcol-form.component.html | 6 +- .../comcol-role/comcol-role.component.html | 2 +- .../edit-comcol-page.component.html | 2 +- .../comcol-page-browse-by.component.html | 2 +- .../confirmation-modal.component.html | 3 +- .../confirmation-modal.component.spec.ts | 2 +- ...m-withdrawn-reinstate-modal.component.html | 4 +- .../shared/ds-select/ds-select.component.html | 8 +- ...dit-menu-expandable-section.component.html | 2 +- .../dso-edit-menu.component.html | 2 +- .../dso-selector/dso-selector.component.html | 2 +- ...e-community-parent-selector.component.html | 8 +- ...create-item-parent-selector.component.html | 3 +- .../dso-selector-modal-wrapper.component.html | 3 +- ...o-selector-modal-wrapper.component.spec.ts | 2 +- .../edit-item-selector.component.html | 3 +- .../entity-dropdown.component.html | 4 +- .../eperson-search-box.component.html | 14 +- .../group-search-box.component.html | 6 +- .../file-download-link.component.html | 2 +- ...amic-form-control-container.component.html | 7 +- ...amic-form-control-container.component.scss | 19 + ...sting-metadata-list-element.component.html | 2 +- ...sting-relation-list-element.component.html | 2 +- .../dynamic-form-array.component.html | 1 + .../dynamic-form-array.component.scss | 91 +- .../custom-switch.component.html | 2 +- .../dynamic-date-picker-inline.component.html | 20 +- .../date-picker/date-picker.component.scss | 3 + .../disabled/dynamic-disabled.component.html | 2 +- .../models/list/dynamic-list.component.html | 8 +- .../lookup/dynamic-lookup.component.html | 8 +- .../lookup/dynamic-lookup.component.scss | 9 + .../onebox/dynamic-onebox.component.html | 4 +- .../dynamic-relation-group.component.html | 10 +- .../models/tag/dynamic-tag.component.html | 4 +- ...namic-lookup-relation-modal.component.html | 7 +- ...ic-lookup-relation-modal.component.spec.ts | 4 +- ...l-source-entry-import-modal.component.html | 11 +- ...-lookup-relation-search-tab.component.html | 2 +- .../builder/parsers/concat-field-parser.ts | 2 +- .../form/builder/parsers/field-parser.ts | 2 +- .../builder/parsers/onebox-field-parser.ts | 6 +- .../shared/form/builder/parsers/row-parser.ts | 2 +- .../shared/form/chips/chips.component.html | 12 +- src/app/shared/form/form.component.html | 6 +- src/app/shared/form/form.component.scss | 9 + .../number-picker.component.html | 2 +- .../number-picker.component.scss | 6 +- .../vocabulary-treeview-modal.component.html | 3 +- .../vocabulary-treeview.component.html | 20 +- .../vocabulary-treeview.component.scss | 14 + src/app/shared/host-window.service.ts | 8 +- .../idle-modal/idle-modal.component.html | 3 +- .../idle-modal/idle-modal.component.spec.ts | 2 +- .../filter-input-suggestions.component.html | 6 +- src/app/shared/loading/loading.component.html | 2 +- .../log-in-external-provider.component.html | 2 +- .../password/log-in-password.component.html | 2 +- src/app/shared/log-out/log-out.component.html | 2 +- ...claimed-task-actions-reject.component.html | 5 +- .../pool-task-actions.component.html | 2 +- .../workspaceitem-actions.component.html | 3 +- .../notification/notification.component.html | 23 +- .../notification/notification.component.scss | 2 +- .../access-status-badge.component.html | 2 +- .../shared/badges/badges.component.html | 2 +- .../status-badge/status-badge.component.html | 4 +- .../type-badge/type-badge.component.html | 2 +- ...mportable-list-item-control.component.html | 4 +- .../item-collection.component.html | 2 +- .../item-submitter.component.html | 2 +- ...electable-list-item-control.component.html | 4 +- ...-search-result-grid-element.component.html | 2 +- .../browse-entry-list-element.component.html | 4 +- .../collection-list-element.component.html | 4 +- .../community-list-element.component.html | 4 +- ...-search-result-list-element.component.html | 2 +- ...ult-list-element-submission.component.html | 2 +- ...-search-result-list-element.component.html | 2 +- ...-search-result-list-element.component.html | 2 +- ...-search-result-list-element.component.html | 2 +- ...-search-result-list-element.component.html | 3 +- ...-search-result-list-element.component.html | 3 +- ...sidebar-search-list-element.component.html | 2 +- .../collection-select.component.html | 2 +- .../item-select/item-select.component.html | 4 +- .../pagination/pagination.component.html | 6 +- .../form/resource-policy-form.component.html | 11 +- .../form/resource-policy-form.model.ts | 2 +- src/app/shared/rss-feed/rss.component.html | 4 +- .../scope-selector-modal.component.html | 7 +- .../search-form/search-form.component.html | 8 +- .../search-authority-filter.component.html | 4 +- .../search-boolean-filter.component.html | 4 +- .../search-facet-option.component.html | 4 +- .../search-facet-range-option.component.html | 4 +- ...earch-facet-selected-option.component.html | 2 +- .../search-hierarchy-filter.component.html | 4 +- .../search-range-filter.component.html | 10 +- .../search-text-filter.component.html | 4 +- .../search-label-range.component.html | 8 +- .../search-label/search-label.component.html | 4 +- .../search-sidebar.component.html | 2 +- ...search-switch-configuration.component.html | 2 +- ...rch-switch-configuration.component.spec.ts | 2 +- src/app/shared/search/search.component.html | 2 +- src/app/shared/search/search.component.scss | 6 +- .../sidebar/page-with-sidebar.component.html | 2 +- .../sidebar/page-with-sidebar.component.scss | 9 +- .../sidebar/sidebar-dropdown.component.html | 4 +- .../date/starts-with-date.component.html | 61 +- .../text/starts-with-text.component.html | 4 +- .../subscription-modal.component.html | 7 +- .../testing/css-variable-service.stub.ts | 8 +- .../truncatable-part.component.html | 2 +- .../file-dropzone-no-uploader.component.html | 2 +- .../upload/uploader/uploader.component.html | 10 +- .../submission-form-collection.component.html | 16 +- .../submission-form-footer.component.html | 7 +- .../form/submission-form.component.html | 2 +- .../form/submission-form.component.scss | 2 +- ...-import-external-collection.component.html | 3 +- ...-import-external-collection.component.scss | 2 +- ...ion-import-external-preview.component.html | 5 +- ...ion-import-external-preview.component.scss | 2 +- ...n-import-external-searchbar.component.html | 14 +- .../accesses/section-accesses.model.ts | 10 +- ...mission-section-cc-licenses.component.html | 13 +- .../section-container.component.html | 24 +- .../sections/license/section-license.model.ts | 2 +- .../section-coar-notify.component.html | 10 +- .../content-accordion.component.html | 8 +- .../metadata-information.component.html | 4 +- .../publication-information.component.html | 4 +- .../publisher-policy.component.html | 4 +- .../section-sherpa-policies.component.html | 2 +- ...on-upload-access-conditions.component.html | 6 +- .../section-upload-file-edit.component.html | 3 +- .../edit/section-upload-file-edit.model.ts | 10 +- .../file/section-upload-file.component.html | 11 +- .../suggestions-page.component.html | 2 +- .../system-wide-alert-banner.component.html | 4 +- .../system-wide-alert-form.component.html | 12 +- ...nced-workflow-action-rating.component.html | 4 +- .../workspaceitems-delete-page.component.html | 3 +- src/styles/_bootstrap_variables.scss | 27 +- src/styles/_bootstrap_variables_mapping.scss | 869 ++---------------- src/styles/_custom_variables.scss | 6 +- src/styles/_global-styles.scss | 70 +- src/styles/_variables.scss | 6 +- ...-collection-parent-selector.component.html | 3 +- ...e-community-parent-selector.component.html | 7 +- ...create-item-parent-selector.component.html | 3 +- .../edit-collection-selector.component.html | 3 +- .../edit-community-selector.component.html | 3 +- .../edit-item-selector.component.html | 3 +- .../_theme_sass_variable_overrides.scss | 26 +- .../dspace/app/header/header.component.html | 7 +- .../home-news/home-news.component.html | 4 +- .../home-news/home-news.component.scss | 2 +- src/themes/dspace/styles/_global-styles.scss | 2 +- .../_theme_sass_variable_overrides.scss | 12 +- src/themes/dspace/styles/theme.scss | 3 + webpack/webpack.common.ts | 4 - 312 files changed, 1064 insertions(+), 1662 deletions(-) create mode 100644 src/app/collection-page/edit-collection-page/edit-collection-page.component.scss diff --git a/cypress/e2e/submission.cy.ts b/cypress/e2e/submission.cy.ts index ebdabbde2e..d46bb9fc0d 100644 --- a/cypress/e2e/submission.cy.ts +++ b/cypress/e2e/submission.cy.ts @@ -217,7 +217,7 @@ describe('New Submission page', () => { }); // Close popup window - cy.get('ds-dynamic-lookup-relation-modal button.close').click(); + cy.get('ds-dynamic-lookup-relation-modal button.btn-close').click(); // Back on the form, click the discard button to remove new submission // Clicking it will display a confirmation, which we will confirm with another click diff --git a/package-lock.json b/package-lock.json index b5ad2f6bdf..f1f35dd217 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "@angular/ssr": "^17.3.11", "@babel/runtime": "7.26.7", "@kolkov/ngx-gallery": "^2.0.1", - "@ng-bootstrap/ng-bootstrap": "^11.0.0", + "@ng-bootstrap/ng-bootstrap": "^12.0.0", "@ng-dynamic-forms/core": "^16.0.0", "@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0", "@ngrx/effects": "^17.1.1", @@ -33,7 +33,7 @@ "@nicky-lenaers/ngx-scroll-to": "^14.0.0", "angulartics2": "^12.2.0", "axios": "^1.7.9", - "bootstrap": "^4.6.1", + "bootstrap": "^5.3", "cerialize": "0.1.18", "cli-progress": "^3.12.0", "colors": "^1.4.0", @@ -5496,9 +5496,9 @@ } }, "node_modules/@ng-bootstrap/ng-bootstrap": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-11.0.1.tgz", - "integrity": "sha512-xpXpW2x2S9ZQhEu5kCmEAFf8WvkVD+rcKb1NLQiLuiZgAQR7GXVexXy5Y+RIvTjAQmPEVyxaSgYiJA6sWNJLNw==", + "version": "12.1.2", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-12.1.2.tgz", + "integrity": "sha512-p27c+mYVdHiJMYrj5hwClVJxLdiZxafAqlbw1sdJh2xJ1rGOe+H/kCf5YDRbhlHqRN+34Gr0RQqIUeD1I2V8hg==", "dependencies": { "tslib": "^2.3.0" }, @@ -5507,6 +5507,7 @@ "@angular/core": "^13.0.0", "@angular/forms": "^13.0.0", "@angular/localize": "^13.0.0", + "@popperjs/core": "^2.10.2", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -6250,6 +6251,16 @@ "node": ">=14" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@react-dnd/asap": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", @@ -8679,9 +8690,9 @@ "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" }, "node_modules/bootstrap": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", "funding": [ { "type": "github", @@ -8693,8 +8704,7 @@ } ], "peerDependencies": { - "jquery": "1.9.1 - 3", - "popper.js": "^1.16.1" + "@popperjs/core": "^2.11.8" } }, "node_modules/brace-expansion": { @@ -14878,13 +14888,6 @@ "jiti": "bin/jiti.js" } }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT", - "peer": true - }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", @@ -18383,18 +18386,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, "node_modules/portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", diff --git a/package.json b/package.json index fb6cf658de..3171f40369 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,9 @@ "@angular/forms": "^17.3.11" }, "@ng-dynamic-forms/ui-ng-bootstrap": { - "ngx-mask": "14.2.4" + "ngx-mask": "14.2.4", + "@ng-bootstrap/ng-bootstrap": "^12.0.0", + "bootstrap": "^5.3" }, "@ngtools/webpack": { "@angular/compiler-cli": "^17.3.11", @@ -110,7 +112,7 @@ "@angular/ssr": "^17.3.11", "@babel/runtime": "7.26.7", "@kolkov/ngx-gallery": "^2.0.1", - "@ng-bootstrap/ng-bootstrap": "^11.0.0", + "@ng-bootstrap/ng-bootstrap": "^12.0.0", "@ng-dynamic-forms/core": "^16.0.0", "@ng-dynamic-forms/ui-ng-bootstrap": "^16.0.0", "@ngrx/effects": "^17.1.1", @@ -120,7 +122,7 @@ "@nicky-lenaers/ngx-scroll-to": "^14.0.0", "angulartics2": "^12.2.0", "axios": "^1.7.9", - "bootstrap": "^4.6.1", + "bootstrap": "^5.3", "cerialize": "0.1.18", "cli-progress": "^3.12.0", "colors": "^1.4.0", diff --git a/src/app/access-control/bulk-access/browse/bulk-access-browse.component.html b/src/app/access-control/bulk-access/browse/bulk-access-browse.component.html index f96ddf4a23..6c748ca2e7 100644 --- a/src/app/access-control/bulk-access/browse/bulk-access-browse.component.html +++ b/src/app/access-control/bulk-access/browse/bulk-access-browse.component.html @@ -1,19 +1,13 @@ - -
+
-
-
- - -
-
@@ -22,7 +16,7 @@
  • {{'admin.access-control.bulk-access-browse.search.header' | translate}} -
    + @@ -18,17 +18,17 @@
    -
    -
    -
    +
    +
    - + diff --git a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html index 3aa4d66b05..c6f3a915a9 100644 --- a/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html +++ b/src/app/access-control/epeople-registry/eperson-form/eperson-form.component.html @@ -29,7 +29,7 @@ {{'admin.access-control.epeople.actions.reset' | translate}}
    -
    +
    diff --git a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html index d289d036bb..82e07a898d 100644 --- a/src/app/access-control/group-registry/group-form/members-list/members-list.component.html +++ b/src/app/access-control/group-registry/group-form/members-list/members-list.component.html @@ -75,8 +75,8 @@ -
    -
    +
    +
    diff --git a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html index 66404bde0d..32525fb2b5 100644 --- a/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html +++ b/src/app/access-control/group-registry/group-form/subgroup-list/subgroups-list.component.html @@ -62,8 +62,8 @@ -
    -
    +
    +
    @@ -75,7 +75,7 @@
    -
    diff --git a/src/app/access-control/group-registry/groups-registry.component.html b/src/app/access-control/group-registry/groups-registry.component.html index 4150e2560c..8dd88e23fb 100644 --- a/src/app/access-control/group-registry/groups-registry.component.html +++ b/src/app/access-control/group-registry/groups-registry.component.html @@ -4,18 +4,18 @@

    {{messagePrefix + 'head' | translate}}

    -
    -
    -
    +
    +
    diff --git a/src/app/admin/admin-import-batch-page/batch-import-page.component.html b/src/app/admin/admin-import-batch-page/batch-import-page.component.html index c51ee7597c..c321fb235d 100644 --- a/src/app/admin/admin-import-batch-page/batch-import-page.component.html +++ b/src/app/admin/admin-import-batch-page/batch-import-page.component.html @@ -8,7 +8,7 @@

    -
    +