diff --git a/ui/src/app/App.router.js b/ui/src/app/App.router.js index 01dfe80ce..1091dd091 100644 --- a/ui/src/app/App.router.js +++ b/ui/src/app/App.router.js @@ -1,4 +1,4 @@ -import { createBrowserRouter, Navigate } from "react-router-dom"; +import { createBrowserRouter, Navigate, Outlet } from "react-router-dom"; import { BASE_PATH } from "./App.constant"; import { Root } from "./App.root"; import Dashboard from "./dashboard/view/Dashboard"; @@ -68,6 +68,7 @@ import MetadataFilterSelector from "./metadata/hoc/MetadataFilterSelector"; import { EditFilter } from "./metadata/view/EditFilter"; import MetadataSelector from "./metadata/hoc/MetadataSelector"; import { MetadataFilterList } from "./metadata/editor/MetadataFilterList"; +import { Error } from './core/Error'; export const router = createBrowserRouter([ { @@ -75,347 +76,353 @@ export const router = createBrowserRouter([ element: }, { - path: `/`, element: , + errorElement: , children: [ { - index: true, - element: - }, - { - path: `/dashboard`, - element: , + element: , children: [ { - path: `metadata/manager/resolvers`, - element: , - }, - { - path: `metadata/manager/providers`, - element: , - }, - { - path: `dynamic-registration`, - element: , + index: true, + element: }, { - path: `admin/actions`, - element: , + path: `/dashboard`, + element: , children: [ { - index: true, - element: + path: `metadata/manager/resolvers`, + element: , }, { - path: `approve-sources`, - element: + path: `metadata/manager/providers`, + element: , }, { - path: `approve-registrations`, - element: + path: `dynamic-registration`, + element: , }, { - path: `enable-sources`, - element: + path: `admin/actions`, + element: , + children: [ + { + index: true, + element: + }, + { + path: `approve-sources`, + element: + }, + { + path: `approve-registrations`, + element: + }, + { + path: `enable-sources`, + element: + }, + { + path: `enable-registrations`, + element: + }, + { + path: `useraccess`, + element: + } + ] }, { - path: `enable-registrations`, - element: + path: `admin/management`, + element: + + }, { - path: `useraccess`, - element: + index: true, + element: } - ] - }, - { - path: `admin/management`, - element: - - - }, - { - index: true, - element: - } - ], - }, - { - path: `metadata/:type/:id/`, - element: , - children: [ - { - path: `configuration/options`, - element: - - , - }, - { - path: `configuration/xml`, - element: - - , - }, - { - path: `configuration/history`, - element: - - , - }, - { - path: `configuration/compare`, - element: - - , + ], }, { - path: `configuration/version/:versionId/options`, - element: - - , - }, - { - path: `edit/:section`, - element: , + path: `metadata/:type/:id/`, + element: , + children: [ + { + path: `configuration/options`, + element: + + , + }, + { + path: `configuration/xml`, + element: + + , + }, + { + path: `configuration/history`, + element: + + , + }, + { + path: `configuration/compare`, + element: + + , + }, + { + path: `configuration/version/:versionId/options`, + element: + + , + }, + { + path: `edit/:section`, + element: , + }, + { + path: `restore/:versionId/:section`, + element: , + }, + { + path: `restore/:versionId/:section/edit`, + element: , + }, + { + index: true, + element: , + }, + ] }, { - path: `restore/:versionId/:section`, - element: , + path: 'metadata/source/new', + element: , + children: [ + { + path: `blank`, + element: + {(data, onRestart) => + + + + } + , + }, + { + path: `upload`, + element: , + }, + { + path: `copy`, + element: + + , + }, + { + index: true, + element: , + }, + ] }, { - path: `restore/:versionId/:section/edit`, - element: , + path: `metadata/provider/new`, + element: + + }, { - index: true, - element: , + path: `metadata/provider/:id/filter`, + element: , + children: [ + { + path: `list`, + element: + {(entity) => + + + + } + , + }, + { + path: `new/:section`, + element: + }, + { + path: `:filterId/edit/:section`, + element: + + + }, + { + path: `new`, + element: + } + ] }, - ] - }, - { - path: 'metadata/source/new', - element: , - children: [ { - path: `blank`, - element: - {(data, onRestart) => - - - + path: `groups`, + element: , + children: [ + { + path: `list`, + element: + {(groups, onDelete) => + } - , - }, - { - path: `upload`, - element: , - }, - { - path: `copy`, - element: - - , - }, - { - index: true, - element: , - }, - ] - }, - { - path: `metadata/provider/new`, - element: - - - }, - { - path: `metadata/provider/:id/filter`, - element: , - children: [ - { - path: `list`, - element: - {(entity) => - - - + , + }, + { + path: `new`, + element: + {(groups, onDelete, loading) => + { loading ? : } + } + , + }, + { + path: `:id/edit`, + element: + {(groups, onDelete, loading) => + { loading ? : } + } + , + }, + { + index: true, + element: , } - , - }, - { - path: `new/:section`, - element: - }, - { - path: `:filterId/edit/:section`, - element: - - - }, - { - path: `new`, - element: - } - ] - }, - { - path: `groups`, - element: , - children: [ - { - path: `list`, - element: - {(groups, onDelete) => - - } - , - }, - { - path: `new`, - element: - {(groups, onDelete, loading) => - { loading ? : } - } - , - }, - { - path: `:id/edit`, - element: - {(groups, onDelete, loading) => - { loading ? : } - } - , - }, - { - index: true, - element: , - } - ] - }, - { - path: `configurations`, - element: , - children: [ - { - path: `list`, - element: - {(configurations, onDelete) => - - } - , - }, - { - path: `new`, - element: - {(configurations) => - - } - , - }, - { - path: `:id/edit`, - element: - {(configurations) => - - } - , - }, - { - index: true, - element: , - } - ] - }, - { - path: `roles`, - element: , - children: [ - { - path: `list`, - element: - {(roles, onDelete) => - - } - , - }, - { - path: `new`, - element:, - }, - { - path: `:id/edit`, - element: , - }, - { - index: true, - element: , - } - ] - }, - { - path: `dynamic-registration`, - element: , - children: [ - { - path: `new`, - element: , - }, - { - path: `:id`, - element: , + ] }, { - path: `:id/edit`, - element: , - } - ] - }, - { - path: `metadata/attributes`, - element: - - , - children: [ - { - path: `list`, - element: - {(entities, onDelete) => - + path: `configurations`, + element: , + children: [ + { + path: `list`, + element: + {(configurations, onDelete) => + + } + , + }, + { + path: `new`, + element: + {(configurations) => + + } + , + }, + { + path: `:id/edit`, + element: + {(configurations) => + + } + , + }, + { + index: true, + element: , } - , - }, - { - path: `new`, - element:, - }, - { - path: `:id/edit`, - element: , - }, - { - path: `bundles`, - element: + ] }, { - path: `bundles/new`, - element: + path: `roles`, + element: , + children: [ + { + path: `list`, + element: + {(roles, onDelete) => + + } + , + }, + { + path: `new`, + element:, + }, + { + path: `:id/edit`, + element: , + }, + { + index: true, + element: , + } + ] }, { - path: `bundles/:id/edit`, - element: + path: `dynamic-registration`, + element: , + children: [ + { + path: `new`, + element: , + }, + { + path: `:id`, + element: , + }, + { + path: `:id/edit`, + element: , + } + ] }, { - index: true, - element: , + path: `metadata/attributes`, + element: + + , + children: [ + { + path: `list`, + element: + {(entities, onDelete) => + + } + , + }, + { + path: `new`, + element:, + }, + { + path: `:id/edit`, + element: , + }, + { + path: `bundles`, + element: + }, + { + path: `bundles/new`, + element: + }, + { + path: `bundles/:id/edit`, + element: + }, + { + index: true, + element: , + } + ] } ] - } + }, + ] } ], { diff --git a/ui/src/app/core/Error.js b/ui/src/app/core/Error.js new file mode 100644 index 000000000..7571b8bcc --- /dev/null +++ b/ui/src/app/core/Error.js @@ -0,0 +1,24 @@ +import React, { Fragment } from 'react'; + +import { Alert } from 'react-bootstrap'; +import { Link } from 'react-router-dom'; + +import Footer from './components/Footer'; +import Header from './components/Header'; + +export function Error () { + return ( + + + + + Oops! + There was a problem processing this request. + + Go to dashboard + + + + + ); +} \ No newline at end of file
There was a problem processing this request.