Skip to content

Commit 0b8083c

Browse files
committed
Merge branch 'develop' into 636-show-dataset-metrics
2 parents e28eda9 + 51f1d84 commit 0b8083c

File tree

48 files changed

+563
-286
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+563
-286
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"statusNumberNotFound": "404",
3+
"message": "We can't find the <1>{{type}}</1> you're looking for.\n Sorry for the inconvenience.",
4+
"backToHomepage": "Back to {{brandName}} Homepage"
5+
}

public/locales/en/shared.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
{
2+
"collection": "Collection",
3+
"dataset": "Dataset",
4+
"file": "File",
5+
"page": "Page",
26
"asterisksIndicateRequiredFields": "Asterisks indicate required fields",
37
"remove": "Remove",
48
"add": "Add",
@@ -20,10 +24,6 @@
2024
"heading": "Page Number Not Found",
2125
"message": "The page number you requested does not exist. Please try a different page number."
2226
},
23-
"pageNotFound": {
24-
"heading": "Page Not Found",
25-
"message": "The page you are looking for was not found."
26-
},
2727
"pagination": {
2828
"results_one": "1 {{item}}",
2929
"results_other": "{{start}} to {{end}} of {{formattedCount}} {{item}}s",

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
@@ -23,7 +23,11 @@ export interface DatasetRepository {
2323
) => Promise<DatasetVersionDiff>
2424

2525
create: (dataset: DatasetDTO, collectionId: string) => Promise<{ persistentId: string }>
26-
updateMetadata: (datasetId: string | number, datasetDTO: DatasetDTO) => Promise<void>
26+
updateMetadata: (
27+
datasetId: string | number,
28+
datasetDTO: DatasetDTO,
29+
internalVersionNumber: number
30+
) => Promise<void>
2731
deaccession: (
2832
datasetId: string | number,
2933
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
@@ -319,9 +319,13 @@ export class DatasetJSDataverseRepository implements DatasetRepository {
319319
})
320320
}
321321

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

src/router/routes.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { lazy, Suspense } from 'react'
2-
import { RouteObject } from 'react-router-dom'
2+
import { Navigate, RouteObject } from 'react-router-dom'
33
import { Route } from '../sections/Route.enum'
44
import { Layout } from '../sections/layout/Layout'
55
import { ErrorPage } from '../sections/error-page/ErrorPage'
@@ -92,6 +92,12 @@ const FeaturedItemPage = lazy(() =>
9292
}))
9393
)
9494

95+
const NotFoundPage = lazy(() =>
96+
import('../sections/not-found-page/NotFoundPageFactory').then(({ NotFoundPageFactory }) => ({
97+
default: () => NotFoundPageFactory.create()
98+
}))
99+
)
100+
95101
export const routes: RouteObject[] = [
96102
{
97103
path: '/',
@@ -229,6 +235,15 @@ export const routes: RouteObject[] = [
229235
errorElement: <ErrorPage />
230236
}
231237
]
238+
},
239+
// 🕵️‍♂️ Not found page, if the path doesn't match any route we redirect to not found page.
240+
{
241+
path: Route.NOT_FOUND_PAGE,
242+
element: <NotFoundPage />
243+
},
244+
{
245+
path: '*',
246+
element: <Navigate to={Route.NOT_FOUND_PAGE} replace />
232247
}
233248
]
234249
}

src/sections/Route.enum.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ export enum Route {
1515
EDIT_COLLECTION = '/collections/:collectionId/edit',
1616
ACCOUNT = '/account',
1717
EDIT_COLLECTION_FEATURED_ITEMS = '/collections/:collectionId/edit-featured-items',
18-
FEATURED_ITEM = '/featured-item/:parentCollectionId/:featuredItemId'
18+
FEATURED_ITEM = '/featured-item/:parentCollectionId/:featuredItemId',
19+
NOT_FOUND_PAGE = '/404'
1920
}
2021

2122
export const RouteWithParams = {

src/sections/collection/Collection.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import AddDataActionsButton from '../shared/add-data-actions/AddDataActionsButto
1111
import { CollectionItemsPanel } from './collection-items-panel/CollectionItemsPanel'
1212
import { CollectionInfo } from './CollectionInfo'
1313
import { CollectionSkeleton } from './CollectionSkeleton'
14-
import { PageNotFound } from '../page-not-found/PageNotFound'
1514
import { CreatedAlert } from './CreatedAlert'
1615
import { PublishCollectionButton } from './publish-collection/PublishCollectionButton'
1716
import { ShareCollectionButton } from './share-collection-button/ShareCollectionButton'
@@ -20,8 +19,9 @@ import { EditCollectionDropdown } from './edit-collection-dropdown/EditCollectio
2019
import { FeaturedItems } from './featured-items/FeaturedItems'
2120
import { Route } from '../Route.enum'
2221
import { CollectionHelper } from './CollectionHelper'
23-
import styles from './Collection.module.scss'
2422
import { ContactRepository } from '@/contact/domain/repositories/ContactRepository'
23+
import { NotFoundPage } from '../not-found-page/NotFoundPage'
24+
import styles from './Collection.module.scss'
2525

2626
interface CollectionProps {
2727
collectionRepository: CollectionRepository
@@ -72,7 +72,7 @@ export function Collection({
7272
}
7373

7474
if (!isLoadingCollection && !collection) {
75-
return <PageNotFound />
75+
return <NotFoundPage dvObjectNotFoundType="collection" />
7676
}
7777

7878
return (

0 commit comments

Comments
 (0)