Skip to content

Commit a468501

Browse files
committed
Merge branch 'develop' into feat/621-enhance-not-found-page
2 parents d6cbb7b + b9f3906 commit a468501

File tree

16 files changed

+121
-34
lines changed

16 files changed

+121
-34
lines changed

package-lock.json

Lines changed: 4 additions & 4 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.31",
20+
"@iqss/dataverse-client-javascript": "2.0.0-alpha.33",
2121
"@iqss/dataverse-design-system": "*",
2222
"@istanbuljs/nyc-config-typescript": "1.0.2",
2323
"@tanstack/react-table": "8.9.2",

src/dataset/domain/models/Dataset.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ export class Dataset {
401401
constructor(
402402
public readonly persistentId: string,
403403
public readonly version: DatasetVersion,
404+
public readonly internalVersionNumber: number,
404405
public readonly alerts: Alert[],
405406
public readonly summaryFields: DatasetMetadataBlock[],
406407
public readonly termsOfUse: DatasetTermsOfUse,
@@ -496,6 +497,7 @@ export class Dataset {
496497
constructor(
497498
public readonly persistentId: string,
498499
public readonly version: DatasetVersion,
500+
public readonly internalVersionNumber: number,
499501
public readonly summaryFields: DatasetMetadataBlock[],
500502
public readonly termsOfUse: DatasetTermsOfUse,
501503
public readonly metadataBlocks: DatasetMetadataBlocks,
@@ -565,6 +567,7 @@ export class Dataset {
565567
return new Dataset(
566568
this.persistentId,
567569
this.version,
570+
this.internalVersionNumber,
568571
this.alerts,
569572
this.summaryFields,
570573
this.termsOfUse,

src/dataset/domain/repositories/DatasetRepository.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ export interface DatasetRepository {
2222
) => Promise<DatasetVersionDiff>
2323

2424
create: (dataset: DatasetDTO, collectionId: string) => Promise<{ persistentId: string }>
25-
updateMetadata: (datasetId: string | number, datasetDTO: DatasetDTO) => Promise<void>
25+
updateMetadata: (
26+
datasetId: string | number,
27+
datasetDTO: DatasetDTO,
28+
internalVersionNumber: number
29+
) => Promise<void>
2630
deaccession: (
2731
datasetId: string | number,
2832
version: string,

src/dataset/domain/useCases/updateDatasetMetadata.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,12 @@ import { DatasetDTO } from './DTOs/DatasetDTO'
44
export function updateDatasetMetadata(
55
datasetRepository: DatasetRepository,
66
datasetId: string | number,
7-
updatedDataset: DatasetDTO
7+
updatedDataset: DatasetDTO,
8+
internalVersionNumber: number
89
): Promise<void> {
9-
return datasetRepository.updateMetadata(datasetId, updatedDataset).catch((error: Error) => {
10-
throw new Error(error.message)
11-
})
10+
return datasetRepository
11+
.updateMetadata(datasetId, updatedDataset, internalVersionNumber)
12+
.catch((error: Error) => {
13+
throw new Error(error.message)
14+
})
1215
}

src/dataset/infrastructure/mappers/JSDatasetMapper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export class JSDatasetMapper {
6161
return new Dataset.Builder(
6262
jsDataset.persistentId,
6363
version,
64+
jsDataset.internalVersionNumber,
6465
JSDatasetMapper.toSummaryFields(jsDataset.metadataBlocks, jsDatasetSummaryFieldsNames),
6566
jsDataset.termsOfUse,
6667
JSDatasetMapper.toMetadataBlocks(

src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,13 @@ export class DatasetJSDataverseRepository implements DatasetRepository {
317317
})
318318
}
319319

320-
updateMetadata(datasetId: string | number, updatedDataset: DatasetDTO): Promise<void> {
320+
updateMetadata(
321+
datasetId: string | number,
322+
updatedDataset: DatasetDTO,
323+
internalVersionNumber: number
324+
): Promise<void> {
321325
return updateDataset
322-
.execute(datasetId, DatasetDTOMapper.toJSDatasetDTO(updatedDataset))
326+
.execute(datasetId, DatasetDTOMapper.toJSDatasetDTO(updatedDataset), internalVersionNumber)
323327
.catch((error: WriteError) => {
324328
throw new Error(error.message)
325329
})

src/sections/edit-dataset-metadata/EditDatasetMetadata.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ export const EditDatasetMetadata = ({
7070
metadataBlockInfoRepository={metadataBlockInfoRepository}
7171
datasetPersistentID={dataset.persistentId}
7272
datasetMetadaBlocksCurrentValues={dataset.metadataBlocks}
73+
datasetInternalVersionNumber={dataset.internalVersionNumber}
7374
/>
7475
</div>
7576
</Tabs.Tab>

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,10 @@ export class MetadataFieldsHelper {
298298
return formattedNewObject
299299
}
300300

301-
public static formatFormValuesToDatasetDTO(formValues: DatasetMetadataFormValues): DatasetDTO {
301+
public static formatFormValuesToDatasetDTO(
302+
formValues: DatasetMetadataFormValues,
303+
mode: 'create' | 'edit'
304+
): DatasetDTO {
302305
const metadataBlocks: DatasetDTO['metadataBlocks'] = []
303306

304307
for (const metadataBlockName in formValues) {
@@ -310,14 +313,14 @@ export class MetadataFieldsHelper {
310313

311314
Object.entries(metadataBlockFormValues).forEach(([fieldName, fieldValue]) => {
312315
if (this.isPrimitiveFieldValue(fieldValue)) {
313-
if (fieldValue !== '') {
316+
if (fieldValue !== '' || mode === 'edit') {
314317
formattedMetadataBlock.fields[fieldName] = fieldValue
315318
return
316319
}
317320
return
318321
}
319322
if (this.isVocabularyMultipleFieldValue(fieldValue)) {
320-
if (fieldValue.length > 0) {
323+
if (fieldValue.length > 0 || mode === 'edit') {
321324
formattedMetadataBlock.fields[fieldName] = fieldValue
322325
return
323326
}
@@ -329,7 +332,7 @@ export class MetadataFieldsHelper {
329332
.map((primitiveField) => primitiveField.value)
330333
.filter((v) => v !== '')
331334

332-
if (primitiveMultipleFieldValues.length > 0) {
335+
if (primitiveMultipleFieldValues.length > 0 || mode === 'edit') {
333336
formattedMetadataBlock.fields[fieldName] = primitiveMultipleFieldValues
334337
return
335338
}
@@ -340,7 +343,7 @@ export class MetadataFieldsHelper {
340343
const formattedMetadataChildFieldValue: DatasetMetadataChildFieldValueDTO = {}
341344

342345
Object.entries(fieldValue).forEach(([nestedFieldName, nestedFieldValue]) => {
343-
if (nestedFieldValue !== '') {
346+
if (nestedFieldValue !== '' || mode === 'edit') {
344347
formattedMetadataChildFieldValue[nestedFieldName] = nestedFieldValue
345348
}
346349
})
@@ -357,15 +360,15 @@ export class MetadataFieldsHelper {
357360
fieldValue.forEach((composedFieldValues) => {
358361
const composedField: DatasetMetadataChildFieldValueDTO = {}
359362
Object.entries(composedFieldValues).forEach(([nestedFieldName, nestedFieldValue]) => {
360-
if (nestedFieldValue !== '') {
363+
if (nestedFieldValue !== '' || mode === 'edit') {
361364
composedField[nestedFieldName] = nestedFieldValue
362365
}
363366
})
364-
if (Object.keys(composedField).length > 0) {
367+
if (Object.keys(composedField).length > 0 || mode === 'edit') {
365368
formattedMetadataChildFieldValues.push(composedField)
366369
}
367370
})
368-
if (formattedMetadataChildFieldValues.length > 0) {
371+
if (formattedMetadataChildFieldValues.length > 0 || mode === 'edit') {
369372
formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValues
370373
}
371374

src/sections/shared/form/DatasetMetadataForm/MetadataForm/index.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ interface FormProps {
2323
errorLoadingMetadataBlocksInfo: string | null
2424
datasetRepository: DatasetRepository
2525
datasetPersistentID?: string
26+
datasetInternalVersionNumber?: number
2627
}
2728

2829
export const MetadataForm = ({
@@ -32,7 +33,8 @@ export const MetadataForm = ({
3233
metadataBlocksInfo,
3334
errorLoadingMetadataBlocksInfo,
3435
datasetRepository,
35-
datasetPersistentID
36+
datasetPersistentID,
37+
datasetInternalVersionNumber
3638
}: FormProps) => {
3739
const { user } = useSession()
3840
const navigate = useNavigate()
@@ -53,7 +55,8 @@ export const MetadataForm = ({
5355
collectionId,
5456
datasetRepository,
5557
onSubmitDatasetError,
56-
datasetPersistentID
58+
datasetPersistentID,
59+
datasetInternalVersionNumber
5760
)
5861

5962
useEffect(() => {

0 commit comments

Comments
 (0)