From ba04a5d547aa2c86f1919a314601406a33d8e852 Mon Sep 17 00:00:00 2001
From: vkovtun <viktor.kovtun@id.ethz.ch>
Date: Sat, 12 Aug 2023 14:01:36 +0200
Subject: [PATCH] SSDM-13579: Added home directory to the navigation.

---
 .../database/data-browser/NavigationBar.jsx   | 38 ++++++++++++++-----
 1 file changed, 29 insertions(+), 9 deletions(-)

diff --git a/ui-admin/src/js/components/database/data-browser/NavigationBar.jsx b/ui-admin/src/js/components/database/data-browser/NavigationBar.jsx
index f3452c43fc8..6287f02386e 100644
--- a/ui-admin/src/js/components/database/data-browser/NavigationBar.jsx
+++ b/ui-admin/src/js/components/database/data-browser/NavigationBar.jsx
@@ -21,20 +21,28 @@ import autoBind from 'auto-bind'
 import logger from "@src/js/common/logger.js";
 import Container from "@src/js/components/common/form/Container.jsx";
 import Link from "@material-ui/core/Link";
+import HomeIcon from "@material-ui/icons/Home";
+import IconButton from "@material-ui/core/IconButton";
 
+const color = 'default'
 const buttonSize = 'small'
+const iconButtonSize = 'small'
 
 const styles = theme => ({
-  navigationBar: {
+  containerDefault: {
     flex: '0 0 auto',
     display: 'flex',
     whiteSpace: 'nowrap',
     marginLeft: theme.spacing(1),
     marginRight: theme.spacing(1),
+    fontSize: '1.125rem',
+    '& *': {
+      fontSize: '1.125rem'
+    },
+    '& .disabled':  {
+      pointerEvents: 'none'
+    }
   },
-  link: {
-    fontSize: theme.typography.body2.fontSize
-  }
 })
 
 class NavigationBar extends React.Component {
@@ -60,11 +68,22 @@ class NavigationBar extends React.Component {
   renderLinks() {
     const { classes, path, onPathChange } = this.props
     const { folders, paths } = this.splitPath(path)
-    const components = new Array(2 * paths.length + 1)
+    const components = new Array(2 * paths.length + 2)
 
-    components[0] = '/'
+    components[0] = <IconButton
+          key='root'
+          classes={{ root: classes.button }}
+          color={color}
+          size={iconButtonSize}
+          variant='outlined'
+          onClick={() => onPathChange('/')}
+          disabled={paths.length === 0}
+        >
+      <HomeIcon />
+    </IconButton>
+    components[1] = '/'
     for (let i = 0; i < paths.length; i++) {
-      components[2 * i + 1] = <Link
+      components[2 * i + 2] = <Link
         key={'path-' + i}
         classes={{ root: classes.link }}
         component="button"
@@ -73,7 +92,7 @@ class NavigationBar extends React.Component {
       >
         {folders[i]}
       </Link>
-      components[2 * i + 2] = '/'
+      components[2 * i + 3] = '/'
     }
 
     return components
@@ -81,9 +100,10 @@ class NavigationBar extends React.Component {
 
   render() {
     logger.log(logger.DEBUG, 'NavigationBar.render')
+    const { classes } = this.props
 
     return (
-      <Container>
+      <Container classes={{ containerDefault: classes.containerDefault }}>
         { this.renderLinks() }
       </Container>
     )
-- 
GitLab