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