diff --git a/openbis_ng_ui/src/js/components/common/grid/Grid.jsx b/openbis_ng_ui/src/js/components/common/grid/Grid.jsx index 1e38765ee78e609f945262ce9b6494cae1ee063b..c11b023b4767faccd97eaf4b6e4742fda215c709 100644 --- a/openbis_ng_ui/src/js/components/common/grid/Grid.jsx +++ b/openbis_ng_ui/src/js/components/common/grid/Grid.jsx @@ -14,7 +14,7 @@ import GridRow from '@src/js/components/common/grid/GridRow.jsx' import GridRowFullWidth from '@src/js/components/common/grid/GridRowFullWidth.jsx' import GridExports from '@src/js/components/common/grid/GridExports.jsx' import GridExportLoading from '@src/js/components/common/grid/GridExportLoading.jsx' -import GridExportWarning from '@src/js/components/common/grid/GridExportWarning.jsx' +import GridExportWarnings from '@src/js/components/common/grid/GridExportWarnings.jsx' import GridExportError from '@src/js/components/common/grid/GridExportError.jsx' import GridPaging from '@src/js/components/common/grid/GridPaging.jsx' import GridColumnsConfig from '@src/js/components/common/grid/GridColumnsConfig.jsx' @@ -265,9 +265,9 @@ class Grid extends React.PureComponent { error={exportState.error} onClose={this.controller.handleExportCancel} /> - <GridExportWarning - open={!!exportState.warning} - message={exportState.warning} + <GridExportWarnings + open={!!exportState.warnings} + warnings={exportState.warnings} onDownload={() => this.controller.handleExportDownload( exportState.fileName, diff --git a/openbis_ng_ui/src/js/components/common/grid/GridController.js b/openbis_ng_ui/src/js/components/common/grid/GridController.js index d16ff50c480467005e087fe0f97ba6585831ed77..c26493b0d7aecce44e425847a6c75c0d1cc3ecc4 100644 --- a/openbis_ng_ui/src/js/components/common/grid/GridController.js +++ b/openbis_ng_ui/src/js/components/common/grid/GridController.js @@ -74,7 +74,7 @@ export default class GridController { totalCount: 0, exportState: { loading: false, - warning: null, + warnings: null, error: null, fileName: null, filePath: null @@ -1356,10 +1356,10 @@ export default class GridController { '&filePath=' + encodeURIComponent(filePath) - if (exportResult.warning) { + if (exportResult.warnings) { this.context.setState({ exportState: { - warning: exportResult.warning, + warnings: exportResult.warnings, fileName, fileUrl } diff --git a/openbis_ng_ui/src/js/components/common/grid/GridExportWarning.jsx b/openbis_ng_ui/src/js/components/common/grid/GridExportWarnings.jsx similarity index 70% rename from openbis_ng_ui/src/js/components/common/grid/GridExportWarning.jsx rename to openbis_ng_ui/src/js/components/common/grid/GridExportWarnings.jsx index 48796d0fce5ff1ed1fc048654f46d17030da4e2e..ef93788424c44a69ac31106600604c2a4b82b212 100644 --- a/openbis_ng_ui/src/js/components/common/grid/GridExportWarning.jsx +++ b/openbis_ng_ui/src/js/components/common/grid/GridExportWarnings.jsx @@ -1,3 +1,4 @@ +import _ from 'lodash' import React from 'react' import { withStyles } from '@material-ui/core/styles' import autoBind from 'auto-bind' @@ -13,7 +14,7 @@ const styles = theme => ({ } }) -class GridExportWarning extends React.PureComponent { +class GridExportWarnings extends React.PureComponent { constructor(props) { super(props) autoBind(this) @@ -28,15 +29,15 @@ class GridExportWarning extends React.PureComponent { } render() { - logger.log(logger.DEBUG, 'GridExportWarning.render') + logger.log(logger.DEBUG, 'GridExportWarnings.render') - const { open, message, classes } = this.props + const { open, classes } = this.props return ( <Dialog open={open} title={messages.get(messages.WARNING)} - content={<Message type='warning'>{message}</Message>} + content={this.renderWarnings()} actions={ <div> <Button @@ -56,6 +57,20 @@ class GridExportWarning extends React.PureComponent { /> ) } + + renderWarnings() { + const { warnings } = this.props + + if (_.isEmpty(warnings)) { + return null + } + + return warnings.map((warning, index) => ( + <Message key={index} type='warning'> + {warning} + </Message> + )) + } } -export default withStyles(styles)(GridExportWarning) +export default withStyles(styles)(GridExportWarnings)