From a7502e9a21f0d606518e73d468387fd154594d5b Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Wed, 15 Mar 2023 10:22:36 +0100
Subject: [PATCH] SSDM-13463 : Export selection of fields from tables - UI part
 - change export options

---
 ui-admin/src/js/common/messages.js            |  2 +
 .../common/grid/GridExportOptions.js          | 11 ++++-
 .../js/components/common/grid/GridExports.jsx | 45 ++++++++++++++-----
 3 files changed, 45 insertions(+), 13 deletions(-)

diff --git a/ui-admin/src/js/common/messages.js b/ui-admin/src/js/common/messages.js
index 261ca4906d1..23444f3f0c6 100644
--- a/ui-admin/src/js/common/messages.js
+++ b/ui-admin/src/js/common/messages.js
@@ -115,6 +115,7 @@ const keys = {
   HOUR_OR_HOURS: 'HOUR_OR_HOURS',
   IGNORE_EXISTING: 'IGNORE_EXISTING',
   IMPORT: 'IMPORT',
+  IMPORT_COMPATIBLE: 'IMPORT_COMPATIBLE',
   IMPORT_SUCCEEDED: 'IMPORT_SUCCEEDED',
   IMPORT_FAILED: 'IMPORT_FAILED',
   IMPORT_FILE: 'IMPORT_FILE',
@@ -409,6 +410,7 @@ const messages_en = {
   [keys.HOUR_OR_HOURS]: '${0} hour(s)',
   [keys.IGNORE_EXISTING]: 'Ignore if exists',
   [keys.IMPORT]: 'Import',
+  [keys.IMPORT_COMPATIBLE]: 'Import Compatible',
   [keys.IMPORT_SUCCEEDED]: 'Successfully imported data.',
   [keys.IMPORT_FAILED]: 'Import failed.',
   [keys.IMPORT_FILE]: 'XLS or ZIP File',
diff --git a/ui-admin/src/js/components/common/grid/GridExportOptions.js b/ui-admin/src/js/components/common/grid/GridExportOptions.js
index 532ae97ee76..4e66b80a79b 100644
--- a/ui-admin/src/js/components/common/grid/GridExportOptions.js
+++ b/ui-admin/src/js/components/common/grid/GridExportOptions.js
@@ -5,6 +5,10 @@ const TYPES_CONTENT = 'TYPES'
 const VOCABULARIES_CONTENT = 'VOCABULARIES'
 const ENTITIES_CONTENT = 'ENTITIES'
 
+const IMPORT_COMPATIBLE_YES = 'YES'
+const IMPORT_COMPATIBLE_NO = 'NO'
+const IMPORT_COMPATIBLE_OPTIONS = [IMPORT_COMPATIBLE_YES, IMPORT_COMPATIBLE_NO]
+
 const ALL_COLUMNS = 'ALL_COLUMNS'
 const VISIBLE_COLUMNS = 'VISIBLE_COLUMNS'
 const COLUMNS_OPTIONS = [ALL_COLUMNS, VISIBLE_COLUMNS]
@@ -24,14 +28,17 @@ export default {
   TYPES_CONTENT,
   VOCABULARIES_CONTENT,
   ENTITIES_CONTENT,
+  IMPORT_COMPATIBLE_OPTIONS,
+  IMPORT_COMPATIBLE_YES,
+  IMPORT_COMPATIBLE_NO,
   COLUMNS_OPTIONS,
-  ROWS_OPTIONS,
-  VALUES_OPTIONS,
   ALL_COLUMNS,
   VISIBLE_COLUMNS,
+  ROWS_OPTIONS,
   ALL_PAGES,
   CURRENT_PAGE,
   SELECTED_ROWS,
+  VALUES_OPTIONS,
   PLAIN_TEXT,
   RICH_TEXT
 }
diff --git a/ui-admin/src/js/components/common/grid/GridExports.jsx b/ui-admin/src/js/components/common/grid/GridExports.jsx
index 6dd37a14986..a1317b30e01 100644
--- a/ui-admin/src/js/components/common/grid/GridExports.jsx
+++ b/ui-admin/src/js/components/common/grid/GridExports.jsx
@@ -109,16 +109,18 @@ class GridExports extends React.PureComponent {
       })
     }
 
+    const isXLSExport =
+      exportable.fileFormat === GridExportOptions.XLS_FILE_FORMAT
+
     const isTSVExport =
       exportable.fileFormat === GridExportOptions.TSV_FILE_FORMAT
 
     const isXLSEntityExport =
-      exportable.fileFormat === GridExportOptions.XLS_FILE_FORMAT &&
+      isXLSExport &&
       exportable.fileContent === GridExportOptions.ENTITIES_CONTENT
 
     const isXLSTypesExport =
-      exportable.fileFormat === GridExportOptions.XLS_FILE_FORMAT &&
-      exportable.fileContent === GridExportOptions.TYPES_CONTENT
+      isXLSExport && exportable.fileContent === GridExportOptions.TYPES_CONTENT
 
     return (
       <div className={classes.container}>
@@ -146,27 +148,48 @@ class GridExports extends React.PureComponent {
         >
           <Container square={true} className={classes.popup}>
             <div>
-              {(isTSVExport || isXLSEntityExport) && (
+              {isXLSExport && (
                 <div className={classes.field}>
                   <SelectField
-                    label={messages.get(messages.COLUMNS)}
-                    name='columns'
+                    label={messages.get(messages.IMPORT_COMPATIBLE)}
+                    name='importCompatible'
+                    mandatory={true}
+                    emptyOption={{}}
                     options={[
                       {
-                        label: messages.get(messages.ALL_COLUMNS),
-                        value: GridExportOptions.ALL_COLUMNS
+                        label: messages.get(messages.YES),
+                        value: GridExportOptions.IMPORT_COMPATIBLE_YES
                       },
                       {
-                        label: messages.get(messages.VISIBLE_COLUMNS),
-                        value: GridExportOptions.VISIBLE_COLUMNS
+                        label: messages.get(messages.NO),
+                        value: GridExportOptions.IMPORT_COMPATIBLE_NO
                       }
                     ]}
-                    value={exportOptions.columns}
+                    value={exportOptions.importCompatible}
                     variant='standard'
                     onChange={this.handleChange}
                   />
                 </div>
               )}
+              <div className={classes.field}>
+                <SelectField
+                  label={messages.get(messages.COLUMNS)}
+                  name='columns'
+                  options={[
+                    {
+                      label: messages.get(messages.ALL_COLUMNS),
+                      value: GridExportOptions.ALL_COLUMNS
+                    },
+                    {
+                      label: messages.get(messages.VISIBLE_COLUMNS),
+                      value: GridExportOptions.VISIBLE_COLUMNS
+                    }
+                  ]}
+                  value={exportOptions.columns}
+                  variant='standard'
+                  onChange={this.handleChange}
+                />
+              </div>
               <div className={classes.field}>
                 <SelectField
                   label={messages.get(messages.ROWS)}
-- 
GitLab