From 50a9b7e0979413bb2981e732bb90478ceb439b27 Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Tue, 21 Mar 2023 12:51:50 +0100
Subject: [PATCH] SSDM-13463 : Export selection of fields from tables - UI part
 - disable "Export" button when "Visible columns" option is selected and no
 columns are visible

---
 ui-admin/src/js/components/common/grid/Grid.jsx        | 3 +++
 ui-admin/src/js/components/common/grid/GridExports.jsx | 9 +++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/ui-admin/src/js/components/common/grid/Grid.jsx b/ui-admin/src/js/components/common/grid/Grid.jsx
index 963837ead92..6095de99c05 100644
--- a/ui-admin/src/js/components/common/grid/Grid.jsx
+++ b/ui-admin/src/js/components/common/grid/Grid.jsx
@@ -238,6 +238,8 @@ class Grid extends React.PureComponent {
       return null
     }
 
+    const visibleColumns = this.controller.getVisibleColumns()
+
     return (
       <GridExports
         id={id}
@@ -246,6 +248,7 @@ class Grid extends React.PureComponent {
         exportOptions={exportOptions}
         multiselectable={multiselectable}
         multiselectedRows={multiselectedRows}
+        visibleColumns={visibleColumns}
         onExport={this.controller.handleExport}
         onExportOptionsChange={this.controller.handleExportOptionsChange}
       />
diff --git a/ui-admin/src/js/components/common/grid/GridExports.jsx b/ui-admin/src/js/components/common/grid/GridExports.jsx
index 9cb5dcede96..78416767421 100644
--- a/ui-admin/src/js/components/common/grid/GridExports.jsx
+++ b/ui-admin/src/js/components/common/grid/GridExports.jsx
@@ -139,6 +139,7 @@ class GridExports extends React.PureComponent {
       disabled,
       multiselectable,
       multiselectedRows,
+      visibleColumns,
       classes
     } = this.props
     const { el, importCompatibleError } = this.state
@@ -315,8 +316,12 @@ class GridExports extends React.PureComponent {
                 label={messages.get(messages.EXPORT)}
                 type='neutral'
                 disabled={
-                  exportOptions.rows === GridExportOptions.ROWS.SELECTED_ROWS &&
-                  _.isEmpty(multiselectedRows)
+                  (exportOptions.columns ===
+                    GridExportOptions.COLUMNS.VISIBLE &&
+                    _.isEmpty(visibleColumns)) ||
+                  (exportOptions.rows ===
+                    GridExportOptions.ROWS.SELECTED_ROWS &&
+                    _.isEmpty(multiselectedRows))
                 }
                 onClick={this.handleExport}
               />
-- 
GitLab