diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5
index 1d8fddd673..cb664e19f7 100644
--- a/src/assets/i18n/en.json5
+++ b/src/assets/i18n/en.json5
@@ -27,6 +27,16 @@
"404.page-not-found": "page not found",
+ "error-page.description.401": "unauthorized",
+
+ "error-page.description.403": "forbidden",
+
+ "error-page.description.500": "Service Unavailable",
+
+ "error-page.description.404": "page not found",
+
+ "error-page.orcid.generic-error": "An error occurred during login via ORCID. Make sure you have shared your ORCID account email address with DSpace. If the error persists, contact the administrator",
+
"access-status.embargo.listelement.badge": "Embargo",
"access-status.metadata.only.listelement.badge": "Metadata only",
@@ -2125,6 +2135,7 @@
"item.edit.withdraw.success": "The item was withdrawn successfully",
+ "item.orcid.return": "Back",
"item.listelement.badge": "Item",
@@ -2185,6 +2196,10 @@
"item.page.link.simple": "Simple item page",
+ "item.page.orcid.title": "ORCID",
+
+ "item.page.orcid.tooltip": "Open ORCID setting page",
+
"item.page.person.search.title": "Articles by this author",
"item.page.related-items.view-more": "Show {{ amount }} more",
@@ -2219,6 +2234,8 @@
"item.page.claim.button": "Claim",
+ "item.page.claim.tooltip": "Claim this item as profile",
+
"item.preview.dc.identifier.uri": "Identifier:",
"item.preview.dc.contributor.author": "Authors:",
@@ -2506,6 +2523,8 @@
"login.form.oidc": "Log in with OIDC",
+ "login.form.orcid": "Log in with ORCID",
+
"login.form.password": "Password",
"login.form.shibboleth": "Log in with Shibboleth",
@@ -2704,6 +2723,11 @@
"menu.section.workflow": "Administer Workflow",
+ "metadata-export-search.tooltip": "Export search results as CSV",
+ "metadata-export-search.submit.success": "The export was started successfully",
+ "metadata-export-search.submit.error": "Starting the export has failed",
+
+
"mydspace.breadcrumbs": "MyDSpace",
"mydspace.description": "",
@@ -4485,4 +4509,205 @@
"researcherprofile.success.claim.body" : "Profile claimed with success",
"researcherprofile.success.claim.title" : "Success",
+
+ "person.page.orcid": "ORCID",
+
+ "person.page.orcid.create": "Create an ORCID ID",
+
+ "person.page.orcid.granted-authorizations": "Granted authorizations",
+
+ "person.page.orcid.grant-authorizations" : "Grant authorizations",
+
+ "person.page.orcid.link": "Connect to ORCID ID",
+
+ "person.page.orcid.link.processing": "Linking profile to ORCID...",
+
+ "person.page.orcid.link.error.message": "Something went wrong while connecting the profile with ORCID. If the problem persists, contact the administrator.",
+
+ "person.page.orcid.orcid-not-linked-message": "The ORCID iD of this profile ({{ orcid }}) has not yet been connected to an account on the ORCID registry or the connection is expired.",
+
+ "person.page.orcid.unlink": "Disconnect from ORCID",
+
+ "person.page.orcid.unlink.processing": "Processing...",
+
+ "person.page.orcid.missing-authorizations": "Missing authorizations",
+
+ "person.page.orcid.missing-authorizations-message": "The following authorizations are missing:",
+
+ "person.page.orcid.no-missing-authorizations-message": "Great! This box is empty, so you have granted all access rights to use all functions offers by your institution.",
+
+ "person.page.orcid.no-orcid-message": "No ORCID iD associated yet. By clicking on the button below it is possible to link this profile with an ORCID account.",
+
+ "person.page.orcid.profile-preferences": "Profile preferences",
+
+ "person.page.orcid.funding-preferences": "Funding preferences",
+
+ "person.page.orcid.publications-preferences": "Publication preferences",
+
+ "person.page.orcid.remove-orcid-message": "If you need to remove your ORCID, please contact the repository administrator",
+
+ "person.page.orcid.save.preference.changes": "Update settings",
+
+ "person.page.orcid.sync-profile.affiliation" : "Affiliation",
+
+ "person.page.orcid.sync-profile.biographical" : "Biographical data",
+
+ "person.page.orcid.sync-profile.education" : "Education",
+
+ "person.page.orcid.sync-profile.identifiers" : "Identifiers",
+
+ "person.page.orcid.sync-fundings.all" : "All fundings",
+
+ "person.page.orcid.sync-fundings.mine" : "My fundings",
+
+ "person.page.orcid.sync-fundings.my_selected" : "Selected fundings",
+
+ "person.page.orcid.sync-fundings.disabled" : "Disabled",
+
+ "person.page.orcid.sync-publications.all" : "All publications",
+
+ "person.page.orcid.sync-publications.mine" : "My publications",
+
+ "person.page.orcid.sync-publications.my_selected" : "Selected publications",
+
+ "person.page.orcid.sync-publications.disabled" : "Disabled",
+
+ "person.page.orcid.sync-queue.discard" : "Discard the change and do not synchronize with the ORCID registry",
+
+ "person.page.orcid.sync-queue.discard.error": "The discarding of the ORCID queue record failed",
+
+ "person.page.orcid.sync-queue.discard.success": "The ORCID queue record have been discarded successfully",
+
+ "person.page.orcid.sync-queue.empty-message": "The ORCID queue registry is empty",
+
+ "person.page.orcid.sync-queue.description" : "Description",
+
+ "person.page.orcid.sync-queue.description.affiliation": "Affiliations",
+
+ "person.page.orcid.sync-queue.description.country": "Country",
+
+ "person.page.orcid.sync-queue.description.education": "Educations",
+
+ "person.page.orcid.sync-queue.description.external_ids": "External ids",
+
+ "person.page.orcid.sync-queue.description.other_names": "Other names",
+
+ "person.page.orcid.sync-queue.description.qualification": "Qualifications",
+
+ "person.page.orcid.sync-queue.description.researcher_urls": "Researcher urls",
+
+ "person.page.orcid.sync-queue.description.keywords": "Keywords",
+
+ "person.page.orcid.sync-queue.tooltip.insert": "Add a new entry in the ORCID registry",
+
+ "person.page.orcid.sync-queue.tooltip.update": "Update this entry on the ORCID registry",
+
+ "person.page.orcid.sync-queue.tooltip.delete": "Remove this entry from the ORCID registry",
+
+ "person.page.orcid.sync-queue.tooltip.publication": "Publication",
+
+ "person.page.orcid.sync-queue.tooltip.funding": "Funding",
+
+ "person.page.orcid.sync-queue.tooltip.affiliation": "Affiliation",
+
+ "person.page.orcid.sync-queue.tooltip.education": "Education",
+
+ "person.page.orcid.sync-queue.tooltip.qualification": "Qualification",
+
+ "person.page.orcid.sync-queue.tooltip.other_names": "Other name",
+
+ "person.page.orcid.sync-queue.tooltip.country": "Country",
+
+ "person.page.orcid.sync-queue.tooltip.keywords": "Keyword",
+
+ "person.page.orcid.sync-queue.tooltip.external_ids": "External identifier",
+
+ "person.page.orcid.sync-queue.tooltip.researcher_urls": "Researcher url",
+
+ "person.page.orcid.sync-queue.send" : "Synchronize with ORCID registry",
+
+ "person.page.orcid.sync-queue.send.unauthorized-error.title": "The submission to ORCID failed for missing authorizations.",
+
+ "person.page.orcid.sync-queue.send.unauthorized-error.content": "Click here to grant again the required permissions. If the problem persists, contact the administrator",
+
+ "person.page.orcid.sync-queue.send.bad-request-error": "The submission to ORCID failed because the resource sent to ORCID registry is not valid",
+
+ "person.page.orcid.sync-queue.send.error": "The submission to ORCID failed",
+
+ "person.page.orcid.sync-queue.send.conflict-error": "The submission to ORCID failed because the resource is already present on the ORCID registry",
+
+ "person.page.orcid.sync-queue.send.not-found-warning": "The resource does not exists anymore on the ORCID registry.",
+
+ "person.page.orcid.sync-queue.send.success": "The submission to ORCID was completed successfully",
+
+ "person.page.orcid.sync-queue.send.validation-error": "The data that you want to synchronize with ORCID is not valid",
+
+ "person.page.orcid.sync-queue.send.validation-error.amount-currency.required": "The amount's currency is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.external-id.required": "The resource to be sent requires at least one identifier",
+
+ "person.page.orcid.sync-queue.send.validation-error.title.required": "The title is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.type.required": "The type is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.start-date.required": "The start date is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.funder.required": "The funder is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.organization.required": "The organization is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.organization.name-required": "The organization's name is required",
+
+ "person.page.orcid.sync-queue.send.validation-error.organization.address-required": "The organization to be sent requires an address",
+
+ "person.page.orcid.sync-queue.send.validation-error.organization.city-required": "The address of the organization to be sent requires a city",
+
+ "person.page.orcid.sync-queue.send.validation-error.organization.country-required": "The address of the organization to be sent requires a country",
+
+ "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.required": "An identifier to disambiguate organizations is required. Supported ids are GRID, Ringgold, Legal Entity identifiers (LEIs) and Crossref Funder Registry identifiers",
+
+ "person.page.orcid.sync-queue.send.validation-error.disambiguated-organization.value-required": "The organization's identifiers requires a value",
+
+ "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.required": "The organization's identifiers requires a source",
+
+ "person.page.orcid.sync-queue.send.validation-error.disambiguation-source.invalid": "The source of one of the organization identifiers is invalid. Supported sources are RINGGOLD, GRID, LEI and FUNDREF",
+
+ "person.page.orcid.synchronization-mode": "Synchronization mode",
+
+ "person.page.orcid.synchronization-mode.batch": "Batch",
+
+ "person.page.orcid.synchronization-mode.label": "Synchronization mode",
+
+ "person.page.orcid.synchronization-mode-message": "Please select how you would like synchronization to ORCID to occur. The options include \"Manual\" (you must send your data to ORCID manually), or \"Batch\" (the system will send your data to ORCID via a scheduled script).",
+
+ "person.page.orcid.synchronization-mode-funding-message": "Select whether to send your linked Project entities to your ORCID record's list of funding information.",
+
+ "person.page.orcid.synchronization-mode-publication-message": "Select whether to send your linked Publication entities to your ORCID record's list of works.",
+
+ "person.page.orcid.synchronization-mode-profile-message": "Select whether to send your biographical data or personal identifiers to your ORCID record.",
+
+ "person.page.orcid.synchronization-settings-update.success": "The synchronization settings have been updated successfully",
+
+ "person.page.orcid.synchronization-settings-update.error": "The update of the synchronization settings failed",
+
+ "person.page.orcid.synchronization-mode.manual": "Manual",
+
+ "person.page.orcid.scope.authenticate": "Get your ORCID iD",
+
+ "person.page.orcid.scope.read-limited": "Read your information with visibility set to Trusted Parties",
+
+ "person.page.orcid.scope.activities-update": "Add/update your research activities",
+
+ "person.page.orcid.scope.person-update": "Add/update other information about you",
+
+ "person.page.orcid.unlink.success": "The disconnection between the profile and the ORCID registry was successful",
+
+ "person.page.orcid.unlink.error": "An error occurred while disconnecting between the profile and the ORCID registry. Try again",
+
+ "person.orcid.sync.setting": "ORCID Synchronization settings",
+
+ "person.orcid.registry.queue": "ORCID Registry Queue",
+
+ "person.orcid.registry.auth": "ORCID Authorizations",
+
}
diff --git a/src/assets/i18n/fi.json5 b/src/assets/i18n/fi.json5
index 02f020a45d..860062fa67 100644
--- a/src/assets/i18n/fi.json5
+++ b/src/assets/i18n/fi.json5
@@ -107,7 +107,7 @@
"admin.registries.bitstream-formats.edit.head": "Tiedostoformaatti: {{ format }}",
// "admin.registries.bitstream-formats.edit.internal.hint": "Formats marked as internal are hidden from the user, and used for administrative purposes.",
- "admin.registries.bitstream-formats.edit.internal.hint": "Sisäisiksi merkittyjä formaatteja käytetään hallinnollisiin tarkoituksiin, ja ne on piilotettu käyttäjiltä.",
+ "admin.registries.bitstream-formats.edit.internal.hint": "Sisäisiksi merkittyjä formaatteja käytetään ylläpitotarkoituksiin, ja ne on piilotettu käyttäjiltä.",
// "admin.registries.bitstream-formats.edit.internal.label": "Internal",
"admin.registries.bitstream-formats.edit.internal.label": "Sisäinen",
@@ -662,7 +662,7 @@
// "admin.search.breadcrumbs": "Administrative Search",
- "admin.search.breadcrumbs": "Hallinnollinen haku",
+ "admin.search.breadcrumbs": "Ylläpitäjän haku",
// "admin.search.collection.edit": "Edit",
"admin.search.collection.edit": "Muokkaa",
@@ -692,19 +692,19 @@
"admin.search.item.withdraw": "Poista käytöstä",
// "admin.search.title": "Administrative Search",
- "admin.search.title": "Hallinnollinen haku",
+ "admin.search.title": "Ylläpitäjän haku",
// "administrativeView.search.results.head": "Administrative Search",
- "administrativeView.search.results.head": "Hallinnollinen haku",
+ "administrativeView.search.results.head": "Ylläpitäjän haku",
// "admin.workflow.breadcrumbs": "Administer Workflow",
- "admin.workflow.breadcrumbs": "Hallinnointityönkulku",
+ "admin.workflow.breadcrumbs": "Hallinnoi työnkulkua",
// "admin.workflow.title": "Administer Workflow",
- "admin.workflow.title": "Hallinnointityönkulku",
+ "admin.workflow.title": "Hallinnoi työnkulkua",
// "admin.workflow.item.workflow": "Workflow",
"admin.workflow.item.workflow": "Työnkulku",
@@ -2954,7 +2954,7 @@
// "menu.section.admin_search": "Admin Search",
- "menu.section.admin_search": "Admin-haku",
+ "menu.section.admin_search": "Ylläpitäjän haku",
@@ -3033,7 +3033,7 @@
"menu.section.icon.access_control": "Pääsyoikeudet",
// "menu.section.icon.admin_search": "Admin search menu section",
- "menu.section.icon.admin_search": "Admin-haku",
+ "menu.section.icon.admin_search": "Ylläpitäjän haku",
// "menu.section.icon.control_panel": "Control Panel menu section",
"menu.section.icon.control_panel": "Hallintapaneeli",
@@ -3168,7 +3168,7 @@
// "menu.section.workflow": "Administer Workflow",
- "menu.section.workflow": "Hallinnointityönkulku",
+ "menu.section.workflow": "Hallinnoi työnkulkua",
// "mydspace.description": "",
@@ -5079,7 +5079,7 @@
// "workflowAdmin.search.results.head": "Administer Workflow",
- "workflowAdmin.search.results.head": "Hallinnointityönkulku",
+ "workflowAdmin.search.results.head": "Hallinnoi työnkulkua",
diff --git a/src/assets/images/orcid.logo.icon.svg b/src/assets/images/orcid.logo.icon.svg
new file mode 100644
index 0000000000..8aec5959e5
--- /dev/null
+++ b/src/assets/images/orcid.logo.icon.svg
@@ -0,0 +1,21 @@
+
+
\ No newline at end of file
diff --git a/src/styles/_global-styles.scss b/src/styles/_global-styles.scss
index b78e67a6a8..89d1d76e9a 100644
--- a/src/styles/_global-styles.scss
+++ b/src/styles/_global-styles.scss
@@ -116,9 +116,25 @@ ngb-modal-backdrop {
margin-left: var(--ds-gap);
}
+.custom-accordion .card-header button {
+ -webkit-box-shadow: none!important;
+ box-shadow: none!important;
+ width: 100%;
+}
+.custom-accordion .card:first-of-type {
+ border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color) !important;
+ border-bottom-left-radius: var(--bs-card-border-radius) !important;
+ border-bottom-right-radius: var(--bs-card-border-radius) !important;
+}
+
ds-dynamic-form-control-container.d-none {
/* Ensures that form-control containers hidden and disabled by type binding collapse and let other fields in
the same row expand accordingly
*/
visibility: collapse;
}
+
+/* Used for dso administrative functionality */
+.btn-dark {
+ background-color: var(--ds-admin-sidebar-bg);
+}