diff --git a/src/client/components/ResultTable.js b/src/client/components/ResultTable.js index d6738ca6d03dd17f280a0e73873a60abf34a349c..37f66fb25fd42b3b26aaf4334f231a2a57f9365d 100644 --- a/src/client/components/ResultTable.js +++ b/src/client/components/ResultTable.js @@ -108,6 +108,7 @@ class ResultTable extends React.Component { return ( <ResultTableCell key={column.id} + columnId={column.id} data={row[column.id] == null ? '-' : row[column.id]} valueType={column.valueType} makeLink={column.makeLink} diff --git a/src/client/components/ResultTableCell.js b/src/client/components/ResultTableCell.js index 5a944e1dc02aa8d792c15fc3fe0c49b552898c0c..c95675a525053233a1095e3910810589e668de67 100644 --- a/src/client/components/ResultTableCell.js +++ b/src/client/components/ResultTableCell.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { orderBy, has } from 'lodash'; +import { sortBy, orderBy, has } from 'lodash'; import TableCell from '@material-ui/core/TableCell'; import { withStyles } from '@material-ui/core/styles'; @@ -68,8 +68,12 @@ const ResultTableCell = props => { return '-'; } else if (Array.isArray(cell)) { - cell = sortValues ? orderBy(cell, 'prefLabel') : cell; - + if (props.columnId == 'timespan') { + cell = sortValues ? sortBy(cell, obj => Number(obj.start)) : cell; + } else { + cell = sortValues ? orderBy(cell, 'prefLabel') : cell; + } + const listItems = cell.map((item, i) => <li key={i}> {makeLink && @@ -222,6 +226,7 @@ const ResultTableCell = props => { ResultTableCell.propTypes = { classes: PropTypes.object.isRequired, + columnId: PropTypes.string.isRequired, data: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]).isRequired, valueType: PropTypes.string.isRequired, makeLink: PropTypes.bool.isRequired,