Skip to content

Commit d87bd6b

Browse files
committed
Show "New Review" button, when enabled #821
1 parent ca0c27f commit d87bd6b

File tree

9 files changed

+50
-12
lines changed

9 files changed

+50
-12
lines changed

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"@dnd-kit/sortable": "8.0.0",
1818
"@dnd-kit/utilities": "3.2.2",
1919
"@faker-js/faker": "7.6.0",
20-
"@iqss/dataverse-client-javascript": "2.0.0-alpha.62",
20+
"@iqss/dataverse-client-javascript": "2.0.0-pr360.cc77995",
2121
"@iqss/dataverse-design-system": "*",
2222
"@istanbuljs/nyc-config-typescript": "1.0.2",
2323
"@tanstack/react-table": "8.9.2",

public/locales/en/header.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"addData": "Add Data",
99
"newCollection": "New Collection",
1010
"newDataset": "New Dataset",
11+
"newReview": "New Review",
1112
"accountInfo": "Account Information",
1213
"apiToken": "API Token",
1314
"myData": "My Data"

src/dataset/domain/repositories/DatasetRepository.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,11 @@ export interface DatasetRepository {
2525
includeDeaccessioned: boolean
2626
) => Promise<DatasetVersionDiff>
2727

28-
create: (dataset: DatasetDTO, collectionId: string) => Promise<{ persistentId: string }>
28+
create: (
29+
dataset: DatasetDTO,
30+
collectionId: string,
31+
datasetType?: string
32+
) => Promise<{ persistentId: string }>
2933
updateMetadata: (
3034
datasetId: string | number,
3135
datasetDTO: DatasetDTO,

src/dataset/domain/useCases/createDataset.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { DatasetDTO } from './DTOs/DatasetDTO'
44
export function createDataset(
55
datasetRepository: DatasetRepository,
66
dataset: DatasetDTO,
7-
collectionId: string
7+
collectionId: string,
8+
datasetType?: string
89
): Promise<{ persistentId: string }> {
9-
return datasetRepository.create(dataset, collectionId).catch((error: Error) => {
10+
return datasetRepository.create(dataset, collectionId, datasetType).catch((error: Error) => {
1011
throw new Error(error.message)
1112
})
1213
}

src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,9 +310,13 @@ export class DatasetJSDataverseRepository implements DatasetRepository {
310310
})
311311
}
312312

313-
create(dataset: DatasetDTO, collectionId: string): Promise<{ persistentId: string }> {
313+
create(
314+
dataset: DatasetDTO,
315+
collectionId: string,
316+
datasetType?: string
317+
): Promise<{ persistentId: string }> {
314318
return createDataset
315-
.execute(DatasetDTOMapper.toJSDatasetDTO(dataset), collectionId)
319+
.execute(DatasetDTOMapper.toJSDatasetDTO(dataset), collectionId, datasetType)
316320
.then((jsDatasetIdentifiers: JSDatasetIdentifiers) => ({
317321
persistentId: jsDatasetIdentifiers.persistentId
318322
}))

src/sections/layout/header/LoggedInHeaderActions.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ export const LoggedInHeaderActions = ({
3838

3939
const canUserAddCollectionToRoot = Boolean(collectionUserPermissions?.canAddCollection)
4040
const canUserAddDatasetToRoot = Boolean(collectionUserPermissions?.canAddDataset)
41+
// TODO: Enable/disable review creation based on config setting. See also AddDataActionsButton.tsx
42+
// TODO: Longer term, query /api/datasets/datasetTypes and show those
43+
const reviewCreationEnabled = false
4144

4245
return (
4346
<>
@@ -51,6 +54,14 @@ export const LoggedInHeaderActions = ({
5154
<Navbar.Dropdown.Item as={Link} to={createDatasetRoute} disabled={!canUserAddDatasetToRoot}>
5255
{t('navigation.newDataset')}
5356
</Navbar.Dropdown.Item>
57+
{reviewCreationEnabled && (
58+
<Navbar.Dropdown.Item
59+
as={Link}
60+
to={`${createDatasetRoute}?datasetType=review`}
61+
disabled={!canUserAddDatasetToRoot}>
62+
{t('navigation.newReview')}
63+
</Navbar.Dropdown.Item>
64+
)}
5465
</Navbar.Dropdown>
5566
<Navbar.Dropdown title={user.displayName} id="dropdown-user">
5667
<Navbar.Dropdown.Item

src/sections/shared/add-data-actions/AddDataActionsButton.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ export default function AddDataActionsButton({
2121

2222
const createCollectionRoute = RouteWithParams.CREATE_COLLECTION(collectionId)
2323
const createDatasetRoute = RouteWithParams.CREATE_DATASET(collectionId)
24+
// TODO: Enable/disable review creation based on config setting. See also LoggedInHeaderActions.tsx
25+
// TODO: Longer term, query /api/datasets/datasetTypes and show those
26+
const reviewCreationEnabled = false
2427

2528
return (
2629
<DropdownButton
@@ -34,6 +37,14 @@ export default function AddDataActionsButton({
3437
<Dropdown.Item to={createDatasetRoute} as={Link} disabled={!canAddDataset}>
3538
{t('navigation.newDataset')}
3639
</Dropdown.Item>
40+
{reviewCreationEnabled && (
41+
<Dropdown.Item
42+
to={`${createDatasetRoute}?datasetType=review`}
43+
as={Link}
44+
disabled={!canAddDataset}>
45+
{t('navigation.newReview')}
46+
</Dropdown.Item>
47+
)}
3748
</DropdownButton>
3849
)
3950
}

src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,13 @@ export function useSubmitDataset(
6161
)
6262

6363
if (mode === 'create') {
64-
createDataset(datasetRepository, formattedFormValues, collectionId)
64+
let datasetType = 'dataset'
65+
const urlParams = new URLSearchParams(window.location.search)
66+
const datasetTypeIn = urlParams.get('datasetType')
67+
if (datasetTypeIn) {
68+
datasetType = datasetTypeIn
69+
}
70+
createDataset(datasetRepository, formattedFormValues, collectionId, datasetType)
6571
.then(({ persistentId }) => {
6672
setSubmitError(null)
6773
setSubmissionStatus(SubmissionStatus.SubmitComplete)

0 commit comments

Comments
 (0)