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