Skip to content

Commit 1a061fa

Browse files
committed
Merge branch 'develop' into 947-manage-template-page-make-default
2 parents 0db4b5e + 01114df commit 1a061fa

178 files changed

Lines changed: 11733 additions & 1144 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/deploy-beta-testing.yml

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ on:
55
branches:
66
- develop
77

8+
env:
9+
FRONTEND_BASE_PATH: /modern
10+
811
jobs:
912
build:
1013
runs-on: ubuntu-latest
@@ -31,7 +34,7 @@ jobs:
3134
run: npm run build
3235

3336
- name: Build with base path
34-
run: npm run build -- --base=/spa
37+
run: npm run build -- --base=${{ env.FRONTEND_BASE_PATH }}
3538

3639
- name: Override runtime config.js for BETA
3740
env:
@@ -41,25 +44,7 @@ jobs:
4144
OIDC_TOKEN_ENDPOINT: ${{ secrets.BETA_OIDC_TOKEN_ENDPOINT }}
4245
OIDC_LOGOUT_ENDPOINT: ${{ secrets.BETA_OIDC_LOGOUT_ENDPOINT }}
4346
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.BETA_OIDC_STORAGE_KEY_PREFIX }}
44-
run: |
45-
mkdir -p ./dist
46-
cat > ./dist/config.js <<EOF
47-
window.__APP_CONFIG__ = {
48-
backendUrl: "${DATAVERSE_BACKEND_URL}",
49-
oidc: {
50-
clientId: "${OIDC_CLIENT_ID}",
51-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
52-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
53-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
54-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
55-
},
56-
languages: [
57-
{ code: 'en', name: 'English' },
58-
{ code: 'es', name: 'Español' }
59-
],
60-
defaultLanguage: 'en'
61-
}
62-
EOF
47+
run: node ./scripts/write-runtime-config.mjs
6348
shell: bash
6449

6550
- uses: actions/upload-artifact@v4
@@ -115,4 +100,4 @@ jobs:
115100
ASADMIN='/usr/local/payara6/bin/asadmin --user admin'
116101
DATAVERSE_FRONTEND=`$ASADMIN list-applications |grep $APPLICATION_NAME |awk '{print $1}'`
117102
$ASADMIN undeploy $DATAVERSE_FRONTEND
118-
$ASADMIN deploy --name $APPLICATION_NAME --contextroot /spa $APPLICATION_WAR_PATH
103+
$ASADMIN deploy --name $APPLICATION_NAME --contextroot ${{ env.FRONTEND_BASE_PATH }} $APPLICATION_WAR_PATH

.github/workflows/deploy.yml

Lines changed: 4 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
- qa
1313
- demo
1414
basepath:
15-
description: 'Server base path (without slashes) for serving the application (e.g., spa). If left blank, it will try to deploy to the root base path.'
15+
description: 'Server base path (without slashes) for serving the application (e.g., modern). If left blank, it will try to deploy to the root base path.'
1616
type: string
1717
required: false
1818

@@ -53,25 +53,7 @@ jobs:
5353
OIDC_TOKEN_ENDPOINT: ${{ secrets.BETA_OIDC_TOKEN_ENDPOINT }}
5454
OIDC_LOGOUT_ENDPOINT: ${{ secrets.BETA_OIDC_LOGOUT_ENDPOINT }}
5555
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.BETA_OIDC_STORAGE_KEY_PREFIX }}
56-
run: |
57-
mkdir -p ./dist
58-
cat > ./dist/config.js <<EOF
59-
window.__APP_CONFIG__ = {
60-
backendUrl: "${DATAVERSE_BACKEND_URL}",
61-
oidc: {
62-
clientId: "${OIDC_CLIENT_ID}",
63-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
64-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
65-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
66-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
67-
},
68-
languages: [
69-
{ code: 'en', name: 'English' },
70-
{ code: 'es', name: 'Español' },
71-
],
72-
defaultLanguage: 'en'
73-
}
74-
EOF
56+
run: node ./scripts/write-runtime-config.mjs
7557

7658
- name: Override runtime config.js for QA
7759
if: ${{ github.event.inputs.environment == 'qa' }}
@@ -82,25 +64,7 @@ jobs:
8264
OIDC_TOKEN_ENDPOINT: ${{ secrets.QA_OIDC_TOKEN_ENDPOINT }}
8365
OIDC_LOGOUT_ENDPOINT: ${{ secrets.QA_OIDC_LOGOUT_ENDPOINT }}
8466
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.QA_OIDC_STORAGE_KEY_PREFIX }}
85-
run: |
86-
mkdir -p ./dist
87-
cat > ./dist/config.js <<EOF
88-
window.__APP_CONFIG__ = {
89-
backendUrl: "${DATAVERSE_BACKEND_URL}",
90-
oidc: {
91-
clientId: "${OIDC_CLIENT_ID}",
92-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
93-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
94-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
95-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
96-
},
97-
languages: [
98-
{ code: 'en', name: 'English' },
99-
{ code: 'es', name: 'Español' },
100-
],
101-
defaultLanguage: 'en'
102-
}
103-
EOF
67+
run: node ./scripts/write-runtime-config.mjs
10468

10569
- name: Override runtime config.js for DEMO
10670
if: ${{ github.event.inputs.environment == 'demo' }}
@@ -111,25 +75,7 @@ jobs:
11175
OIDC_TOKEN_ENDPOINT: ${{ secrets.DEMO_OIDC_TOKEN_ENDPOINT }}
11276
OIDC_LOGOUT_ENDPOINT: ${{ secrets.DEMO_OIDC_LOGOUT_ENDPOINT }}
11377
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.DEMO_OIDC_STORAGE_KEY_PREFIX }}
114-
run: |
115-
mkdir -p ./dist
116-
cat > ./dist/config.js <<EOF
117-
window.__APP_CONFIG__ = {
118-
backendUrl: "${DATAVERSE_BACKEND_URL}",
119-
oidc: {
120-
clientId: "${OIDC_CLIENT_ID}",
121-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
122-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
123-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
124-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
125-
},
126-
languages: [
127-
{ code: 'en', name: 'English' },
128-
{ code: 'es', name: 'Español' },
129-
],
130-
defaultLanguage: 'en'
131-
}
132-
EOF
78+
run: node ./scripts/write-runtime-config.mjs
13379

13480
- uses: actions/upload-artifact@v4
13581
with:

.github/workflows/generate-war.yml

Lines changed: 4 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
- qa
1313
- demo
1414
basepath:
15-
description: 'Server base path (without slashes) for serving the application (e.g., spa). If left blank, it will try to deploy to the root base path.'
15+
description: 'Server base path (without slashes) for serving the application (e.g., modern). If left blank, it will try to deploy to the root base path.'
1616
type: string
1717
required: false
1818

@@ -53,25 +53,7 @@ jobs:
5353
OIDC_TOKEN_ENDPOINT: ${{ secrets.BETA_OIDC_TOKEN_ENDPOINT }}
5454
OIDC_LOGOUT_ENDPOINT: ${{ secrets.BETA_OIDC_LOGOUT_ENDPOINT }}
5555
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.BETA_OIDC_STORAGE_KEY_PREFIX }}
56-
run: |
57-
mkdir -p ./dist
58-
cat > ./dist/config.js <<EOF
59-
window.__APP_CONFIG__ = {
60-
backendUrl: "${DATAVERSE_BACKEND_URL}",
61-
oidc: {
62-
clientId: "${OIDC_CLIENT_ID}",
63-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
64-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
65-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
66-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
67-
},
68-
languages: [
69-
{ code: 'en', name: 'English' },
70-
{ code: 'es', name: 'Español' },
71-
],
72-
defaultLanguage: 'en'
73-
}
74-
EOF
56+
run: node ./scripts/write-runtime-config.mjs
7557

7658
- name: Override runtime config.js for QA
7759
if: ${{ github.event.inputs.environment == 'qa' }}
@@ -82,25 +64,7 @@ jobs:
8264
OIDC_TOKEN_ENDPOINT: ${{ secrets.QA_OIDC_TOKEN_ENDPOINT }}
8365
OIDC_LOGOUT_ENDPOINT: ${{ secrets.QA_OIDC_LOGOUT_ENDPOINT }}
8466
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.QA_OIDC_STORAGE_KEY_PREFIX }}
85-
run: |
86-
mkdir -p ./dist
87-
cat > ./dist/config.js <<EOF
88-
window.__APP_CONFIG__ = {
89-
backendUrl: "${DATAVERSE_BACKEND_URL}",
90-
oidc: {
91-
clientId: "${OIDC_CLIENT_ID}",
92-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
93-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
94-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
95-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
96-
},
97-
languages: [
98-
{ code: 'en', name: 'English' },
99-
{ code: 'es', name: 'Español' },
100-
],
101-
defaultLanguage: 'en'
102-
}
103-
EOF
67+
run: node ./scripts/write-runtime-config.mjs
10468

10569
- name: Override runtime config.js for DEMO
10670
if: ${{ github.event.inputs.environment == 'demo' }}
@@ -111,25 +75,7 @@ jobs:
11175
OIDC_TOKEN_ENDPOINT: ${{ secrets.DEMO_OIDC_TOKEN_ENDPOINT }}
11276
OIDC_LOGOUT_ENDPOINT: ${{ secrets.DEMO_OIDC_LOGOUT_ENDPOINT }}
11377
OIDC_STORAGE_KEY_PREFIX: ${{ secrets.DEMO_OIDC_STORAGE_KEY_PREFIX }}
114-
run: |
115-
mkdir -p ./dist
116-
cat > ./dist/config.js <<EOF
117-
window.__APP_CONFIG__ = {
118-
backendUrl: "${DATAVERSE_BACKEND_URL}",
119-
oidc: {
120-
clientId: "${OIDC_CLIENT_ID}",
121-
authorizationEndpoint: "${OIDC_AUTHORIZATION_ENDPOINT}",
122-
tokenEndpoint: "${OIDC_TOKEN_ENDPOINT}",
123-
logoutEndpoint: "${OIDC_LOGOUT_ENDPOINT}",
124-
localStorageKeyPrefix: "${OIDC_STORAGE_KEY_PREFIX}"
125-
},
126-
languages: [
127-
{ code: 'en', name: 'English' },
128-
{ code: 'es', name: 'Español' },
129-
],
130-
defaultLanguage: 'en'
131-
}
132-
EOF
78+
run: node ./scripts/write-runtime-config.mjs
13379

13480
- uses: actions/upload-artifact@v4
13581
with:

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel
88

99
### Added
1010

11+
### Changed
12+
13+
### Fixed
14+
15+
### Removed
16+
17+
---
18+
19+
## [v0.3.0] -- 2026-04-24
20+
21+
### Added
22+
1123
- Added the value entered by the user in the error messages for metadata field validation errors in EMAIL and URL type fields. For example, instead of showing “Point of Contact E-mail is not a valid email address.“, we now show “Point of Contact E-mail foo is not a valid email address.”
1224
- Contact Owner button in File Page.
1325
- Share button in File Page.
@@ -19,6 +31,10 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel
1931
- Added runtime configuration options for homepage branding and support link.
2032
- Added an environment variable to docker-compose-dev.yml to hide the OIDC client used in the SPA from the JSF frontend: DATAVERSE_AUTH_OIDC_HIDDEN_JSF: 1
2133
- Dataset Templates UI integration, including create/edit flows, previews, and skeleton states.
34+
- Added a message note to the login page
35+
- Download with terms of use and guestbook.
36+
- Show terms modal before download when dataset has custom terms, a non-default license (not CC0 1.0), or a guestbook. Draft datasets and dataset editors bypass the modal.
37+
- Layout: added a configurable homepage banner for announcements and important messages. (#787)
2238

2339
### Changed
2440

@@ -31,6 +47,7 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel
3147
- Added disclaimer text and custom popup text to Publish Dataset modal for better communication of the implications of publishing a dataset. The text can be configured through the runtime configuration.
3248
- Dataset page Terms tab title now depends on permissions: users with dataset update permission see `Terms and Guestbook`, and read-only users see `Terms`.
3349
- Avoided prop-drilling for collection repository, so used context to share epository instances.
50+
- Added frontend version to the footer of the application, which is retrieved from the `version` field in `package.json` at build time.
3451

3552
### Fixed
3653

@@ -63,6 +80,7 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel
6380
- Upgrade Keycloak to 26.3.2; updated SPI and test realm JSON.
6481
- Truncate long collection and dataset descriptions with expandable content. (#789)
6582
- UI polish: Files Table always shows action buttons. (#800)
83+
- Removed hard-coded references to /spa path and SPA name, changed to /modern (#945)
6684

6785
### Fixed
6886

DEVELOPER_GUIDE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ project files and shut down any running containers.
236236
237237
Once the script has finished, you will be able to access Dataverse via:
238238
239-
- Dataverse SPA Frontend: [http://localhost:8000/spa][dv_app_localhost_spa_url]
239+
- Dataverse MODERN Frontend: [http://localhost:8000/modern][dv_app_localhost_modern_url]
240240
- Dataverse JSF Application: [http://localhost:8000][dv_app_localhost_legacy_url]
241241
242242
Note: The Dataverse configbaker takes some time to start the application, so the application will not be accessible until
@@ -802,7 +802,7 @@ describe('Create Dataset', () => {
802802
})
803803
804804
it('navigates to the new dataset after submitting a valid form', () => {
805-
cy.visit('/spa/datasets/root/create')
805+
cy.visit(`${FRONTEND_BASE_PATH}/datasets/root/create`)
806806
807807
cy.findByLabelText(/Title/i).type('Test Dataset Title')
808808
cy.findByLabelText(/Author Name/i).type('Test author name', { force: true })
@@ -885,7 +885,7 @@ it(
885885
}
886886
)
887887
888-
cy.visit('/spa/')
888+
cy.visit(`${FRONTEND_BASE_PATH}/`)
889889
890890
// Assertions that rely on your overridden config
891891
cy.findByText('English').should('exist')
@@ -1134,7 +1134,7 @@ path included will redirect to the frontend application.
11341134
[dv_app_localhost_build_url]: http://localhost:5173
11351135
[dv_app_localhost_storybook_url]: http://localhost:6006/
11361136
[dv_app_localhost_designsystem_url]: http://localhost:6007/
1137-
[dv_app_localhost_spa_url]: http://localhost:8000/spa
1137+
[dv_app_localhost_modern_url]: http://localhost:8000/modern
11381138
[dv_app_localhost_legacy_url]: http://localhost:8000/
11391139
11401140
<!-- @gdcc/dataverse -->

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<br />
3333
<br />
3434
<a href="https://www.dataverse.org">Website</a> |
35-
<a href="https://beta.dataverse.org/spa">View Demo (BETA)</a> |
35+
<a href="https://beta.dataverse.org/modern">View Demo (BETA)</a> |
3636
<a href="https://github.com/IQSS/dataverse-frontend/issues">Report Bug</a> |
3737
<a href="https://github.com/IQSS/dataverse-frontend/issues">Request Feature</a>
3838
</p>
@@ -139,21 +139,21 @@ All environments follow an “all-in-one” setup, where the frontend and backen
139139
The **Beta** environment provides a remote space for testing the latest changes. GitHub Actions automatically deploy the current `develop` branches of both the frontend and backend.
140140

141141
- **Audience:** Development team, QA analysts, project managers, selected users for early feedback
142-
- **URL:** [beta.dataverse.org/spa][dv_app_beta_spa_url]
142+
- **URL:** [beta.dataverse.org/modern][dv_app_beta_modern_url]
143143

144144
#### Demo
145145

146146
The **Demo** environment showcases the latest officially released version of the SPA, compatible with the latest Dataverse backend release. Deployments target specific tagged releases (e.g., `0.1.0`) and are performed on demand.
147147

148148
- **Audience:** Project managers, curation team, early adoption testers
149-
- **URL:** [demo.dataverse.org/spa][dv_app_demo_spa_url]
149+
- **URL:** [demo.dataverse.org/modern][dv_app_demo_modern_url]
150150

151151
#### QA
152152

153153
The **QA** environment is a dedicated, short-lived testing space. It is deployed on demand with feature branches (e.g., `feature/xxx`), frequently overwritten, and used for validating new features and bug fixes before merging into development.
154154

155155
- **Audience:** QA analysts, development team
156-
- **URL:** [qa.dataverse.org/spa][dv_app_qa_spa_url]
156+
- **URL:** [qa.dataverse.org/modern][dv_app_qa_modern_url]
157157

158158
#### Spike Environments
159159

@@ -397,15 +397,15 @@ Distributed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for mo
397397
<!-- Application Instances -->
398398
<!-- [dv_app_] -->
399399

400-
[dv_app_beta_spa_url]: https://beta.dataverse.org/spa
401-
[dv_app_demo_spa_url]: https://demo.dataverse.org/spa
402-
[dv_app_qa_spa_url]: https://qa.dataverse.org/spa
400+
[dv_app_beta_modern_url]: https://beta.dataverse.org/modern
401+
[dv_app_demo_modern_url]: https://demo.dataverse.org/modern
402+
[dv_app_qa_modern_url]: https://qa.dataverse.org/modern
403403
[dv_app_beta_legacyjsf_url]: https://beta.dataverse.org
404404
[dv_app_legacyjsf_demo_url]: https://demo.dataverse.org/
405405
[dv_app_localhost_build_url]: http://localhost:5173
406406
[dv_app_localhost_storybook_url]: http://localhost:6006/
407407
[dv_app_localhost_designsystem_url]: http://localhost:6007/
408-
[dv_app_localhost_spa_url]: http://localhost:8000/spa
408+
[dv_app_localhost_modern_url]: http://localhost:8000/modern
409409
[dv_app_localhost_legacy_url]: http://localhost:8000/
410410

411411
<!-- @gdcc/dataverse -->

0 commit comments

Comments
 (0)