Skip to content

Commit 84fbc28

Browse files
authored
Merge branch 'main' into Search_sidebar_overflows
2 parents 950bea4 + 3d3615a commit 84fbc28

280 files changed

Lines changed: 11635 additions & 1526 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.

.github/workflows/build.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ jobs:
2424
# Spin up UI on 127.0.0.1 to avoid host resolution issues in e2e tests with Node 20+
2525
DSPACE_UI_HOST: 127.0.0.1
2626
DSPACE_UI_PORT: 4000
27+
DSPACE_UI_BASEURL: http://127.0.0.1:4000
2728
# Ensure all SSR caching is disabled in test environment
2829
DSPACE_CACHE_SERVERSIDE_BOTCACHE_MAX: 0
2930
DSPACE_CACHE_SERVERSIDE_ANONYMOUSCACHE_MAX: 0

.github/workflows/docker.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ jobs:
7474
DSPACE_REST_HOST: 127.0.0.1
7575
# Override default dspace.ui.url to also use 127.0.0.1.
7676
dspace__P__ui__P__url: http://127.0.0.1:4000
77+
# Override default ui.baseUrl to also use 127.0.0.1. This must match 'dspace.ui.url' for SSR to be enabled.
78+
DSPACE_UI_BASEURL: http://127.0.0.1:4000
7779
steps:
7880
# Checkout our codebase (to get access to Docker Compose scripts)
7981
- name: Checkout codebase

config/config.example.yml

Lines changed: 143 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ ui:
88
ssl: false
99
host: localhost
1010
port: 4000
11+
# Specify the public URL that this user interface responds to. This corresponds to the "dspace.ui.url" property in your backend's local.cfg.
12+
# SSR is only enabled when the client's "Host" HTTP header matches this baseUrl. The baseUrl is also used for redirects and SEO links (in robots.txt).
13+
baseUrl: http://localhost:4000
1114
# NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
1215
nameSpace: /
1316
# The rateLimiter settings limit each IP to a 'limit' of 500 requests per 'windowMs' (1 minute).
@@ -161,6 +164,9 @@ form:
161164
validatorMap:
162165
required: required
163166
regex: pattern
167+
# If true it enables the button "Duplicate" inside inline form groups.
168+
# The button will give the possibility to duplicate the whole form section copying the metadata values as well.
169+
showInlineGroupDuplicateButton: false
164170

165171
# Notification settings
166172
notifications:
@@ -199,6 +205,10 @@ submission:
199205
# default configuration
200206
- name: default
201207
style: ''
208+
# Icons that should remain visible even when no authority value is present for the metadata field.
209+
# This is useful for fields where you want to display an icon regardless of whether the value has an authority link.
210+
# Example: ['fas fa-user'] will show the user icon for author fields even without authority data.
211+
iconsVisibleWithNoAuthority: ['fas fa-user']
202212
authority:
203213
confidence:
204214
# NOTE: example of configuration
@@ -237,7 +247,12 @@ submission:
237247
- value: default
238248
style: text-muted
239249
icon: fa-circle-xmark
240-
250+
# Icons to be displayed next to an authority controlled value, to give indication of the source.
251+
sourceIcons:
252+
# Example of configuration for authority logo based on sources.
253+
# The configured icon will be displayed next to the authority value in submission and on item page or search results.
254+
- source: orcid
255+
- path: assets/images/orcid.logo.icon.svg
241256
# Fallback language in which the UI will be rendered if the user's browser language is not an active language
242257
fallbackLanguage: en
243258

@@ -397,7 +412,33 @@ item:
397412
pageSize: 5
398413
# Show the bitstream access status label on the item page
399414
showAccessStatuses: false
400-
415+
# Configuration of metadata to be displayed in the item metadata link view popover
416+
metadataLinkViewPopoverData:
417+
# Metdadata list to be displayed for entities without a specific configuration
418+
fallbackMetdataList:
419+
- dc.description.abstract
420+
- dc.description.note
421+
# Configuration for each entity type
422+
entityDataConfig:
423+
- entityType: Person
424+
# Descriptive metadata (popover body)
425+
metadataList:
426+
- person.affiliation.name
427+
- person.email
428+
# Title metadata (popover header)
429+
titleMetadataList:
430+
- person.givenName
431+
- person.familyName
432+
# Configuration for identifier subtypes, based on metadata like dc.identifier.ror where ror is the subtype.
433+
# This is used to map the layout of the identifier in the popover and the icon displayed next to the metadata value.
434+
identifierSubtypes:
435+
- name: ror
436+
icon: assets/images/ror.logo.icon.svg
437+
iconPosition: IdentifierSubtypesIconPositionEnum.LEFT
438+
link: https://ror.org
439+
440+
# Enable authority based relations in item page
441+
showAuthorityRelations: false
401442
# Community Page Config
402443
community:
403444
# Default tab to be shown when browsing a Community. Valid values are: comcols, search, or browse_<field>
@@ -645,3 +686,103 @@ geospatialMapViewer:
645686
accessibility:
646687
# The duration in days after which the accessibility settings cookie expires
647688
cookieExpirationDuration: 7
689+
690+
# Configuration for layout customization of metadata rendering in Item page
691+
# Currently only the authority reference config is available, more will follow with the integration of the so called CRIS layout.
692+
layout:
693+
# Configuration of icons and styles to be used for each authority controlled link
694+
authorityRef:
695+
- entityType: DEFAULT
696+
entityStyle:
697+
default:
698+
icon: fa fa-user
699+
style: text-info
700+
- entityType: PERSON
701+
entityStyle:
702+
person:
703+
icon: fa fa-user
704+
style: text-success
705+
default:
706+
icon: fa fa-user
707+
style: text-info
708+
- entityType: ORGUNIT
709+
entityStyle:
710+
default:
711+
icon: fa fa-university
712+
style: text-success
713+
- entityType: PROJECT
714+
entityStyle:
715+
default:
716+
icon: fas fa-project-diagram
717+
style: text-success
718+
# If true the download link in item page will be rendered as an advanced attachment, the view can be then configured with the layout.advancedAttachmentRendering config
719+
showDownloadLinkAsAttachment: false
720+
# Configuration for advanced attachment rendering in item pages. This controls how files are displayed when showDownloadLinkAsAttachment is enabled.
721+
# Defines which metadata/attributes to display for bitstream attachments.
722+
advancedAttachmentRendering:
723+
# Metadata and attributes to display for each attachment
724+
metadata:
725+
- name: dc.title
726+
type: metadata
727+
truncatable: false
728+
- name: dc.type
729+
type: metadata
730+
truncatable: false
731+
- name: dc.description
732+
type: metadata
733+
truncatable: true
734+
- name: size
735+
type: attribute
736+
- name: format
737+
type: attribute
738+
- name: checksum
739+
type: attribute
740+
741+
# Configuration for customization of search results
742+
searchResults:
743+
# Metadata fields to be displayed in the search results under the standard ones
744+
additionalMetadataFields:
745+
- dc.contributor.author
746+
- dc.date.issued
747+
- dc.type
748+
# Metadata fields to be displayed in the search results for the author section
749+
authorMetadata:
750+
- dc.contributor.author
751+
- dc.creator
752+
- dc.contributor.*
753+
# When the search results are retrieved, for each item type the metadata with a valid authority value are inspected.
754+
# Referenced items will be fetched with a find all by id strategy to avoid individual rest requests
755+
# to efficiently display the search results.
756+
followAuthorityMetadata:
757+
- type: Publication
758+
metadata: dc.contributor.author
759+
- type: Product
760+
metadata: dc.contributor.author
761+
762+
# The maximum number of item to process when following authority metadata values.
763+
followAuthorityMaxItemLimit: 100
764+
765+
# The maximum number of metadata values to process for each metadata key
766+
# when following authority metadata values.
767+
followAuthorityMetadataValuesLimit: 5
768+
769+
770+
# Configuration of social links using AddToAny plugin
771+
addToAnyPlugin:
772+
# This is enabled flag
773+
socialNetworksEnabled: false
774+
# If you want to self-host check https://www.addtoany.com/buttons/customize/host_cache
775+
scriptUrl: "https://static.addtoany.com/menu/page.js"
776+
# Check available integrations, visit https://www.addtoany.com/buttons/for/website
777+
# 1. Click "Choose Services", select integrations, then click Done
778+
# 2. Get Button Code
779+
# 3. You will get a HTML e.g. <a class="a2a_button_facebook"></a> where "facebook" is part you want to include in list
780+
buttons:
781+
- facebook
782+
- twitter
783+
- linkedin
784+
- email
785+
- copy_link
786+
showPlusButton: true
787+
showCounters: true
788+
title: DSpace demo
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
describe('Limit public config properties', () => {
2+
it('Should not include cache.serverSide properties in the html source code',
3+
() => {
4+
cy.request('/').its('body').then((text: string) => {
5+
expect(text).to.not.contain('"serverSide":');
6+
});
7+
},
8+
);
9+
it('Should not include cache.serverSide properties in the config.json',
10+
() => {
11+
cy.request('/assets/config.json').its('body').then((obj: any) => {
12+
expect(obj.cache).to.not.haveOwnProperty('serverSide');
13+
});
14+
},
15+
);
16+
});

docker/cli.assetstore.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ services:
1616
dspace-cli:
1717
environment:
1818
# This assetstore zip is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data
19-
- LOADASSETS=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/assetstore.tar.gz
19+
- LOADASSETS=${LOADASSETS:-https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/assetstore.tar.gz}
2020
entrypoint:
2121
- /bin/bash
2222
- '-c'

docker/cli.ingest.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
services:
1616
dspace-cli:
1717
environment:
18-
- AIPZIP=https://github.com/DSpace-Labs/AIP-Files/raw/main/dogAndReport.zip
19-
- ADMIN_EMAIL=test@test.edu
20-
- AIPDIR=/tmp/aip-dir
18+
- AIPZIP=${AIPZIP:-https://github.com/DSpace-Labs/AIP-Files/raw/main/dogAndReport.zip}
19+
- ADMIN_EMAIL=${ADMIN_EMAIL:-test@test.edu}
20+
- AIPDIR=${AIPDIR:-/tmp/aip-dir}
2121
entrypoint:
2222
- /bin/bash
2323
- '-c'

docker/cli.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ services:
2929
# __P__ => "." (e.g. dspace__P__dir => dspace.dir)
3030
# __D__ => "-" (e.g. google__D__metadata => google-metadata)
3131
# db.url: Ensure we are using the 'dspacedb' image for our database
32-
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
32+
db__P__url: ${db__P__url:-jdbc:postgresql://dspacedb:5432/dspace}
3333
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
34-
solr__P__server: http://dspacesolr:8983/solr
34+
solr__P__server: ${solr__P__server:-http://dspacesolr:8983/solr}
3535
networks:
3636
- dspacenet
3737
volumes:

docker/db.entities.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ services:
1818
environment:
1919
# This LOADSQL should be kept in sync with the URL in DSpace/DSpace
2020
# This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data
21-
- LOADSQL=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-data.sql
21+
- LOADSQL=${LOADSQL:-https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-data.sql}
2222
dspace:
2323
### OVERRIDE default 'entrypoint' in 'docker-compose-rest.yml' ####
2424
# Ensure that the database is ready BEFORE starting tomcat

docker/docker-compose-ci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ services:
2222
# __P__ => "." (e.g. dspace__P__dir => dspace.dir)
2323
# __D__ => "-" (e.g. google__D__metadata => google-metadata)
2424
# dspace.dir, dspace.server.url and dspace.ui.url
25-
dspace__P__dir: /dspace
26-
dspace__P__server__P__url: http://127.0.0.1:8080/server
27-
dspace__P__ui__P__url: http://127.0.0.1:4000
25+
dspace__P__dir: ${dspace__P__dir:-/dspace}
26+
dspace__P__server__P__url: ${dspace__P__server__P__url:-http://127.0.0.1:8080/server}
27+
dspace__P__ui__P__url: ${dspace__P__ui__P__url:-http://127.0.0.1:4000}
2828
# db.url: Ensure we are using the 'dspacedb' image for our database
29-
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
29+
db__P__url: ${db__P__url:-jdbc:postgresql://dspacedb:5432/dspace}
3030
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
31-
solr__P__server: http://dspacesolr:8983/solr
31+
solr__P__server: ${solr__P__server:-http://dspacesolr:8983/solr}
3232
# Tell Statistics to commit all views immediately instead of waiting on Solr's autocommit.
3333
# This allows us to generate statistics in e2e tests so that statistics pages can be tested thoroughly.
34-
solr__D__statistics__P__autoCommit: 'false'
35-
LOGGING_CONFIG: /dspace/config/log4j2-container.xml
34+
solr__D__statistics__P__autoCommit: ${solr__D__statistics__P__autoCommit:-false}
35+
LOGGING_CONFIG: ${LOGGING_CONFIG:-/dspace/config/log4j2-container.xml}
3636
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-latest-test}"
3737
depends_on:
3838
- dspacedb

docker/docker-compose-dist.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@ services:
1818
dspace-angular:
1919
container_name: dspace-angular
2020
environment:
21-
DSPACE_UI_SSL: 'false'
22-
DSPACE_UI_HOST: dspace-angular
23-
DSPACE_UI_PORT: '4000'
24-
DSPACE_UI_NAMESPACE: /
25-
DSPACE_REST_SSL: 'false'
26-
DSPACE_REST_HOST: localhost
27-
DSPACE_REST_PORT: 8080
28-
DSPACE_REST_NAMESPACE: /server
21+
DSPACE_UI_SSL: ${DSPACE_UI_SSL:-false}
22+
DSPACE_UI_HOST: ${DSPACE_UI_HOST:-dspace-angular}
23+
DSPACE_UI_PORT: ${DSPACE_UI_PORT:-4000}
24+
DSPACE_UI_NAMESPACE: ${DSPACE_UI_NAMESPACE:-/}
25+
DSPACE_UI_BASEURL: ${DSPACE_UI_BASEURL:-http://localhost:4000}
26+
DSPACE_REST_SSL: ${DSPACE_REST_SSL:-false}
27+
DSPACE_REST_HOST: ${DSPACE_REST_HOST:-localhost}
28+
DSPACE_REST_PORT: ${DSPACE_REST_PORT:-8080}
29+
DSPACE_REST_NAMESPACE: ${DSPACE_REST_NAMESPACE:-/server}
2930
# Ensure SSR can use the 'dspace' Docker image directly (see docker-compose-rest.yml)
30-
DSPACE_REST_SSRBASEURL: http://dspace:8080/server
31+
DSPACE_REST_SSRBASEURL: ${DSPACE_REST_SSRBASEURL:-http://dspace:8080/server}
3132
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-angular:${DSPACE_VER:-latest}-dist"
3233
build:
3334
context: ..

0 commit comments

Comments
 (0)