From 6adcac015689353b7afc14a3c1042f87184cf31c Mon Sep 17 00:00:00 2001 From: vkovtun <viktor.kovtun@id.ethz.ch> Date: Tue, 25 Jul 2023 18:49:18 +0200 Subject: [PATCH] SSDM-13579: Adding multiselection. --- .../database/data-browser/DataBrowser.jsx | 15 +++++++++++++-- .../database/data-browser/LeftToolbar.jsx | 7 +++++-- .../components/database/data-browser/Toolbar.jsx | 4 ++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx index ebaa93209b3..0f3e7cd9fc5 100644 --- a/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx +++ b/ui-admin/src/js/components/database/data-browser/DataBrowser.jsx @@ -117,8 +117,17 @@ class DataBrowser extends React.Component { this.setState({ selectedFile: selectedRow && selectedRow.data }) } - handleMultiselect(file) { - // TODO: implement + handleMultiselect(event) { + // event.preventDefault(); + // event.stopPropagation(); + + console.log("handleMultiselect. event: " + event) + + // const { multiselectable, onMultiselect, file } = this.props; + // + // if (multiselectable && onMultiselect) { + // onMultiselect(file); + // } } async onError(error) { @@ -143,6 +152,7 @@ class DataBrowser extends React.Component { onShowInfoChange={this.handleShowInfoChange} showInfo={showInfo} selectedFile={selectedFile} + multiselectedFiles={multiselectedFiles} /> <div className={[classes.flexContainer, classes.boundary, classes.content].join(' ')}> {viewType === 'list' && ( @@ -192,6 +202,7 @@ class DataBrowser extends React.Component { onSettingsChange={null} onError={this.onError} onSelectedRowChange={this.handleSelect} + onMultiselect={this.handleMultiselect} exportXLS={null} /> )} diff --git a/ui-admin/src/js/components/database/data-browser/LeftToolbar.jsx b/ui-admin/src/js/components/database/data-browser/LeftToolbar.jsx index 8ddc33308e9..ffa713a56b2 100644 --- a/ui-admin/src/js/components/database/data-browser/LeftToolbar.jsx +++ b/ui-admin/src/js/components/database/data-browser/LeftToolbar.jsx @@ -134,8 +134,11 @@ class LeftToolbar extends React.Component { render() { logger.log(logger.DEBUG, 'LeftToolbar.render') - const { selectedFile } = this.props - return selectedFile + const { multiselectedFiles } = this.props + console.log("multiselectedFiles: " + multiselectedFiles) + console.log(multiselectedFiles.size) + console.log("multiselectedFiles.size: " + multiselectedFiles.size) + return multiselectedFiles && multiselectedFiles.size > 0 ? this.renderSelectionContextToolbar() : this.renderNoSelectionContextToolbar() } diff --git a/ui-admin/src/js/components/database/data-browser/Toolbar.jsx b/ui-admin/src/js/components/database/data-browser/Toolbar.jsx index bed71003936..1065d88ed7e 100644 --- a/ui-admin/src/js/components/database/data-browser/Toolbar.jsx +++ b/ui-admin/src/js/components/database/data-browser/Toolbar.jsx @@ -50,13 +50,13 @@ class Toolbar extends React.Component { logger.log(logger.DEBUG, 'Toolbar.render') const { viewType, onViewTypeChange, classes, showInfo, onShowInfoChange, - selectedFile } = this.props + selectedFile, multiselectedFiles } = this.props return ( <div className={classes.toolbar}> <LeftToolbar buttonSize={buttonSize} controller={this.controller} - selectedFile={selectedFile} /> + multiselectedFiles={multiselectedFiles} /> <RightToolbar buttonSize={buttonSize} selected={showInfo} -- GitLab