diff --git a/src/ui/pages/crop/Wrapper.tsx b/src/ui/catalog/Wrapper.tsx
similarity index 64%
rename from src/ui/pages/crop/Wrapper.tsx
rename to src/ui/catalog/Wrapper.tsx
index 2374bc6bb5f31c8902268f94b15f08b9a034621f..024004c8d5e19873eb3ea13d8887f472cd22610f 100644
--- a/src/ui/pages/crop/Wrapper.tsx
+++ b/src/ui/catalog/Wrapper.tsx
@@ -1,13 +1,12 @@
import * as React from 'react';
import { translate } from 'react-i18next';
-
import ContentHeader from 'ui/common/heading/ContentHeader';
import renderRoutes from 'ui/renderRoutes';
-function Wrapper({route, match, t}) {
+function Wrapper({route, match, t}: { route: any, match: any, t: any}) {
return (
-
+
{ renderRoutes(route.routes, match.path) }
);
diff --git a/src/ui/pages/dashboard/Wrapper.tsx b/src/ui/pages/dashboard/Wrapper.tsx
deleted file mode 100644
index 05aa9ca24f8f992c86fd7535e0be7da9e525095d..0000000000000000000000000000000000000000
--- a/src/ui/pages/dashboard/Wrapper.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from 'react';
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-export default function Wrapper({route, match}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
diff --git a/src/ui/pages/dataset/Wrapper.tsx b/src/ui/pages/dataset/Wrapper.tsx
deleted file mode 100644
index d00a05fdcd0fc4ee7a167d1508cff1aab004e27c..0000000000000000000000000000000000000000
--- a/src/ui/pages/dataset/Wrapper.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import * as React from 'react';
-import { translate } from 'react-i18next';
-
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-function Wrapper({route, match, t}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
-
-export default translate()(Wrapper);
diff --git a/src/ui/pages/descriptor/Wrapper.tsx b/src/ui/pages/descriptor/Wrapper.tsx
deleted file mode 100644
index 9a4907e2e101a76aec5c1aaacdf048eb9f907f9c..0000000000000000000000000000000000000000
--- a/src/ui/pages/descriptor/Wrapper.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from 'react';
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-export default function Wrapper({route, match}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
diff --git a/src/ui/pages/descriptorlist/Wrapper.tsx b/src/ui/pages/descriptorlist/Wrapper.tsx
deleted file mode 100644
index 75738849993c1e54609007fbcd5401fdb755ee2c..0000000000000000000000000000000000000000
--- a/src/ui/pages/descriptorlist/Wrapper.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from 'react';
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-export default function Wrapper({route, match}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
diff --git a/src/ui/pages/genesys/Wrapper.tsx b/src/ui/pages/genesys/Wrapper.tsx
deleted file mode 100644
index f8bc1581910e9f903552c0cb29b55ed288dae317..0000000000000000000000000000000000000000
--- a/src/ui/pages/genesys/Wrapper.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from 'react';
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-export default function Wrapper({route, match}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
diff --git a/src/ui/pages/partner/Wrapper.tsx b/src/ui/pages/partner/Wrapper.tsx
deleted file mode 100644
index 0eaced50c0c965ce5c3e85fd5a02eaf1d795ad5e..0000000000000000000000000000000000000000
--- a/src/ui/pages/partner/Wrapper.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from 'react';
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-export default function Wrapper({route, match}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
diff --git a/src/ui/pages/profile/Wrapper.tsx b/src/ui/pages/profile/Wrapper.tsx
deleted file mode 100644
index b6e09b334bab819825d8764e52d248f2799c9985..0000000000000000000000000000000000000000
--- a/src/ui/pages/profile/Wrapper.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from 'react';
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-export default function Wrapper({route, match}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
diff --git a/src/ui/pages/vocabulary/Wrapper.tsx b/src/ui/pages/vocabulary/Wrapper.tsx
deleted file mode 100644
index 2f7ad8b54a726a31d3a173c381a5ae657e96ebf1..0000000000000000000000000000000000000000
--- a/src/ui/pages/vocabulary/Wrapper.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import * as React from 'react';
-import { translate } from 'react-i18next';
-
-import ContentHeader from 'ui/common/heading/ContentHeader';
-import renderRoutes from 'ui/renderRoutes';
-
-function Wrapper({route, match, t}) {
- return (
-
-
- { renderRoutes(route.routes, match.path) }
-
- );
-}
-
-export default translate()(Wrapper);
diff --git a/src/ui/renderRoutes.tsx b/src/ui/renderRoutes.tsx
index 9d250e9f1a4046e5ee98e56aea37b78ab2869f10..6e4fec17735cfbf38125a68eeacbfaf549724797 100644
--- a/src/ui/renderRoutes.tsx
+++ b/src/ui/renderRoutes.tsx
@@ -3,9 +3,9 @@ import Switch from 'react-router/Switch';
import { Route } from 'react-router-dom';
import AuthorizedRouteComponent from 'ui/common/authorized/AuthorizedRouteComponent';
-const renderRoutes = (routes, parentPath = '', extraProps = {}, switchProps = {}) => {
+const renderRoutes = (routes, parentPath = '', extraProps = {}) => {
return routes ? (
-
+
{ routes.map((route, i) => {
const absolutePath = (route.path) ? (parentPath !== '/' ? (parentPath + route.path) : route.path) : route.path;
return (
diff --git a/src/ui/routes.tsx b/src/ui/routes.tsx
index ba79b5222de7e532e0e87506fb0fd3e4cbda937f..cdd87c1b52de690947cbec0a250143333c5677e0 100644
--- a/src/ui/routes.tsx
+++ b/src/ui/routes.tsx
@@ -1,26 +1,22 @@
import WelcomePage from './pages/welcome';
import App from './App';
-import CropWrapper from './pages/crop/Wrapper';
+import Wrapper from 'ui/catalog/Wrapper';
import CropBrowsePage from './pages/crop/BrowsePage';
import CropEditPage from './pages/crop/EditPage';
-import PartnerWrapper from './pages/partner/Wrapper';
import PartnerBrowsePage from './pages/partner/BrowsePage';
import PartnerDisplayPage from './pages/partner/DisplayPage';
import PartnerEditPage from './pages/partner/EditPage';
-import DatasetWrapper from './pages/dataset/Wrapper';
import DatasetBrowsePage from './pages/dataset/BrowsePage';
import DatasetDisplayPage from './pages/dataset/DisplayPage';
import DatasetStepper from './pages/dataset/dataset-stepper';
-import DescriptorWrapper from './pages/descriptor/Wrapper';
import DescriptorBrowsePage from './pages/descriptor/BrowsePage';
import DescriptorDisplayPage from './pages/descriptor/DisplayPage';
import DescriptorEditPage from './pages/descriptor/EditPage';
-import DescriptorListWrapper from './pages/descriptorlist/Wrapper';
import DescriptorListDisplayPage from './pages/descriptorlist/DisplayPage';
import DescriptorListBrowsePage from './pages/descriptorlist/BrowsePage';
import DescriptorListStepper from 'ui/pages/descriptorlist/descriptorlist-stepper';
@@ -30,24 +26,13 @@ import ImportDescriptorsStep from 'ui/pages/descriptorlist/descriptorlist-steppe
import ReorderDescriptorsStep from 'ui/pages/descriptorlist/descriptorlist-stepper/steps/reorder';
import ReviewDescriptorListStep from 'ui/pages/descriptorlist/descriptorlist-stepper/steps/review';
-import VocabularyWrapper from './pages/vocabulary/Wrapper';
import VocabularyBrowsePage from './pages/vocabulary/BrowsePage';
import VocabularyEditPage from './pages/vocabulary/EditPage';
import VocabularyDisplayPage from './pages/vocabulary/DisplayPage';
-import DashboardWrapper from './pages/dashboard/Wrapper';
import DashboardPage from './pages/dashboard/DashboardPage';
import MyDataPage from './pages/dashboard/MyDataPage';
-import UserProfileWrapper from './pages/profile/Wrapper';
-import UserProfilePage from './pages/profile/ProfilePage';
-
-import AccessionsWrapper from './pages/genesys/Wrapper';
-import AccessionsBrowsePage from './pages/genesys/BrowsePage';
-
-import SearchPage from './pages/search/SearchPage';
-import LoginPage from './pages/login/LoginPage';
-
import BasicInfoStep from './pages/dataset/dataset-stepper/steps/basic-info';
import FilesStep from './pages/dataset/dataset-stepper/steps/files';
import Creators from './pages/dataset/dataset-stepper/steps/creators';
@@ -56,6 +41,10 @@ import TimingAndLocationStep from './pages/dataset/dataset-stepper/steps/timing-
import ReviewAndPublishStep from './pages/dataset/dataset-stepper/steps/review';
import Traits from './pages/dataset/dataset-stepper/steps/traits';
+import UserProfilePage from './pages/profile/ProfilePage';
+import AccessionsBrowsePage from './pages/genesys/BrowsePage';
+import SearchPage from './pages/search/SearchPage';
+import LoginPage from './pages/login/LoginPage';
import GuiTest from './pages/ui-design/Gui';
import NotFound from './common/not-found';
import {ROLE_ADMINISTRATOR, ROLE_USER} from 'constants/userRoles';
@@ -71,7 +60,11 @@ const routes = [
},
{
path: '/partners',
- component: PartnerWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'Genesys partners',
+ subtitle: 'Partners in the Catalog of Phenotypic Datasets',
+ },
routes: [
{
path: '/edit',
@@ -99,7 +92,11 @@ const routes = [
},
{
path: '/descriptors',
- component: DescriptorWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'Descriptor definitions',
+ subtitle: 'Genesys Catalog of published descriptor definitions',
+ },
routes: [
{
path: '/edit',
@@ -178,7 +175,11 @@ const routes = [
},
{
path: '/descriptorlists',
- component: DescriptorListWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'Crop descriptors',
+ subtitle: 'Compilations of crop descriptors',
+ },
routes: [
{
path: '/:uuid',
@@ -254,7 +255,11 @@ const routes = [
},
{
path: '/datasets',
- component: DatasetWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'p.datasets.title',
+ subtitle: 'p.datasets.subtitle',
+ },
routes: [
{
path: '/:uuid',
@@ -270,7 +275,11 @@ const routes = [
},
{
path: '/crops',
- component: CropWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'p.crop.title',
+ subtitle: 'p.crop.subtitle',
+ },
routes: [
{
path: '/create',
@@ -293,7 +302,11 @@ const routes = [
},
{
path: '/vocabulary',
- component: VocabularyWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'p.vocab.title',
+ subtitle: 'p.vocab.subtitle',
+ },
routes: [
{
path: '/create',
@@ -321,7 +334,11 @@ const routes = [
},
{
path: '/accessions',
- component: AccessionsWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'Genesys accessions',
+ subtitle: 'Browse accession data on Genesys',
+ },
routes: [
{
path: '/',
@@ -342,7 +359,11 @@ const routes = [
},
{
path: '/dashboard',
- component: DashboardWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'My Dashboard',
+ subtitle: 'Manage data published on Genesys',
+ },
auth: [ROLE_USER, ROLE_ADMINISTRATOR],
routes: [
{
@@ -405,7 +426,11 @@ const routes = [
},
{
path: '/profile',
- component: UserProfileWrapper,
+ component: Wrapper,
+ extraProps: {
+ title: 'User profile',
+ subtitle: 'You can see and update your profile information here',
+ },
auth: [ROLE_USER, ROLE_ADMINISTRATOR],
routes: [
{