diff --git a/CHANGELOG-update-workspace-pages.md b/CHANGELOG-update-workspace-pages.md new file mode 100644 index 0000000000..b868a845b6 --- /dev/null +++ b/CHANGELOG-update-workspace-pages.md @@ -0,0 +1 @@ +- Add templates landing page and template detail pages. \ No newline at end of file diff --git a/context/app/routes_workspaces.py b/context/app/routes_workspaces.py index 20adfd18a2..4fb04dd7d3 100644 --- a/context/app/routes_workspaces.py +++ b/context/app/routes_workspaces.py @@ -34,3 +34,23 @@ def workspace_detail(workspace_id): flask_data=flask_data, title='Workspace' ) + + +@blueprint.route('/templates') +def templates(): + flask_data = {**get_default_flask_data()} + return render_template( + 'base-pages/react-content.html', + flask_data=flask_data, + title='Templates' + ) + + +@blueprint.route('/templates/') +def template_detail(template_id): + flask_data = {**get_default_flask_data()} + return render_template( + 'base-pages/react-content.html', + flask_data=flask_data, + title='Template' + ) diff --git a/context/app/static/js/components/Routes/Routes.jsx b/context/app/static/js/components/Routes/Routes.jsx index 1ffc354be9..a32fbd22ca 100644 --- a/context/app/static/js/components/Routes/Routes.jsx +++ b/context/app/static/js/components/Routes/Routes.jsx @@ -30,6 +30,8 @@ const Organ = lazy(() => import('js/pages/Organ')); const Workspaces = lazy(() => import('js/pages/Workspaces')); const Workspace = lazy(() => import('js/pages/Workspace')); const WorkspacePleaseWait = lazy(() => import('js/pages/WorkspacePleaseWait')); +const Templates = lazy(() => import('js/pages/Templates')); +const Template = lazy(() => import('js/pages/Template')); const GeneDetails = lazy(() => import('js/pages/Genes')); const Biomarkers = lazy(() => import('js/pages/Biomarkers')); const CellTypes = lazy(() => import('js/pages/CellTypes')); @@ -243,6 +245,23 @@ function Routes({ flaskData }) { ); } + if (urlPath === '/templates') { + return ( + + + + ); + } + + if (urlPath.startsWith('/templates/')) { + const templateKey = urlPath.split('/').pop(); + return ( + +