From 946b3d50f549fe6e0f973f42a42d89e6ff466840 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Tue, 3 Jan 2023 15:09:31 +0100 Subject: [PATCH] SSDM-11608 : Admin UI : navigation collapse all --- .../js/components/common/browser/Browser.jsx | 21 ++++++++------ .../browser/BrowserNodeAutoShowSelected.jsx | 29 +++++++++++-------- .../common/browser/BrowserNodeCollapseAll.jsx | 7 +++-- .../common/browser/BrowserNodeSetAsRoot.jsx | 2 +- .../common/browser/BrowserNodeSortings.jsx | 2 +- 5 files changed, 36 insertions(+), 25 deletions(-) diff --git a/openbis_ng_ui/src/js/components/common/browser/Browser.jsx b/openbis_ng_ui/src/js/components/common/browser/Browser.jsx index f338560f830..e70a32e1fb2 100644 --- a/openbis_ng_ui/src/js/components/common/browser/Browser.jsx +++ b/openbis_ng_ui/src/js/components/common/browser/Browser.jsx @@ -5,6 +5,7 @@ import FilterField from '@src/js/components/common/form/FilterField.jsx' import BrowserRoot from '@src/js/components/common/browser/BrowserRoot.jsx' import BrowserNode from '@src/js/components/common/browser/BrowserNode.jsx' import BrowserNodeAutoShowSelected from '@src/js/components/common/browser/BrowserNodeAutoShowSelected.jsx' +import BrowserNodeCollapseAll from '@src/js/components/common/browser/BrowserNodeCollapseAll.jsx' import logger from '@src/js/common/logger.js' const styles = theme => ({ @@ -21,9 +22,6 @@ const styles = theme => ({ marginRight: '16px', display: 'flex' }, - filterButton: { - marginLeft: '16px' - }, nodes: { height: '100%', overflow: 'auto' @@ -124,12 +122,17 @@ class Browser extends React.PureComponent { loading={controller.isLoading() || controller.isTreeLoading()} endAdornments={ <div className={classes.filterButtons}> - <div className={classes.filterButton}> - <BrowserNodeAutoShowSelected - value={controller.isAutoShowSelectedObject()} - onClick={controller.changeAutoShowSelectedObject} - /> - </div> + <BrowserNodeAutoShowSelected + value={controller.isAutoShowSelectedObject()} + onClick={controller.changeAutoShowSelectedObject} + /> + <BrowserNodeCollapseAll + node={ + controller.getNodeSetAsRoot() || + controller.getRoot() || { canHaveChildren: true } + } + onClick={controller.collapseAllNodes} + /> </div> } /> diff --git a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeAutoShowSelected.jsx b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeAutoShowSelected.jsx index 5620b668cde..6b14266ef1a 100644 --- a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeAutoShowSelected.jsx +++ b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeAutoShowSelected.jsx @@ -8,7 +8,10 @@ import LocationDisabled from '@material-ui/icons/LocationDisabled' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' -const styles = () => ({ +const styles = theme => ({ + container: { + paddingLeft: theme.spacing(2) + }, button: { padding: '4px', margin: '-4px' @@ -34,17 +37,19 @@ class BrowserNodeAutoShowSelected extends React.PureComponent { return ( <Tooltip title={messages.get(messages.AUTO_SHOW_SELECTED)}> - <IconButton - size='small' - onClick={this.handleClick} - classes={{ root: classes.button }} - > - {value ? ( - <MyLocation fontSize='small' /> - ) : ( - <LocationDisabled fontSize='small' /> - )} - </IconButton> + <div className={classes.container}> + <IconButton + size='small' + onClick={this.handleClick} + classes={{ root: classes.button }} + > + {value ? ( + <MyLocation fontSize='small' /> + ) : ( + <LocationDisabled fontSize='small' /> + )} + </IconButton> + </div> </Tooltip> ) } diff --git a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeCollapseAll.jsx b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeCollapseAll.jsx index 4cfdfa20aae..cd97d36e80b 100644 --- a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeCollapseAll.jsx +++ b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeCollapseAll.jsx @@ -6,10 +6,11 @@ import IconButton from '@material-ui/core/IconButton' import UnfoldLessIcon from '@material-ui/icons/UnfoldLess' import messages from '@src/js/common/messages.js' import logger from '@src/js/common/logger.js' +import id from 'date-fns/esm/locale/id/index.js' const styles = theme => ({ container: { - paddingLeft: theme.spacing(1) + paddingLeft: theme.spacing(2) }, button: { padding: '4px', @@ -27,7 +28,9 @@ class BrowserNodeCollapseAll extends React.PureComponent { event.preventDefault() event.stopPropagation() const { node } = this.props - this.props.onClick(node.id) + if (node.id) { + this.props.onClick(node.id) + } } render() { diff --git a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSetAsRoot.jsx b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSetAsRoot.jsx index 8939cb6dd28..aad6c2b3b5a 100644 --- a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSetAsRoot.jsx +++ b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSetAsRoot.jsx @@ -9,7 +9,7 @@ import logger from '@src/js/common/logger.js' const styles = theme => ({ container: { - paddingLeft: theme.spacing(1) + paddingLeft: theme.spacing(2) }, button: { padding: '4px', diff --git a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSortings.jsx b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSortings.jsx index 0cf4e5cfb05..daaafcaef9c 100644 --- a/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSortings.jsx +++ b/openbis_ng_ui/src/js/components/common/browser/BrowserNodeSortings.jsx @@ -14,7 +14,7 @@ import logger from '@src/js/common/logger.js' const styles = theme => ({ container: { - paddingLeft: theme.spacing(1) + paddingLeft: theme.spacing(2) }, button: { padding: '4px', -- GitLab