diff --git a/src/client/components/facet_results/ObjectListCollapsible.js b/src/client/components/facet_results/ObjectListCollapsible.js index dc6a599ef4b0dc4faebe4191d61616c7cc0b46bd..f7bb9eb68230af5a832463c0da44764c81c08cd3 100644 --- a/src/client/components/facet_results/ObjectListCollapsible.js +++ b/src/client/components/facet_results/ObjectListCollapsible.js @@ -26,25 +26,25 @@ const styles = () => ({ const ObjectList = props => { const { - sortValues, makeLink, externalLink, linkAsButton, columnId, showSource, + sortValues, sortBy, makeLink, externalLink, linkAsButton, columnId, showSource, sourceExternalLink } = props let { data } = props const sortList = data => { if (has(props, 'columnId') && props.columnId.endsWith('Timespan')) { - data = sortValues - ? data.sort((a, b) => { - a = has(a, 'start') ? ISOStringToDate(a.start) : ISOStringToDate(a.end) - b = has(b, 'start') ? ISOStringToDate(b.start) : ISOStringToDate(b.end) - // arrange from the most recent to the oldest - return a > b ? 1 : a < b ? -1 : 0 - }) - : data + data = data.sort((a, b) => { + a = has(a, 'start') ? ISOStringToDate(a.start) : ISOStringToDate(a.end) + b = has(b, 'start') ? ISOStringToDate(b.start) : ISOStringToDate(b.end) + // arrange from the most recent to the oldest + return a > b ? 1 : a < b ? -1 : 0 + }) } else if (props.columnId === 'event') { - data = sortValues ? orderBy(data, 'date') : data + data = orderBy(data, 'date') + } else if (props.sortBy) { + data = orderBy(data, sortBy) } else { - data = sortValues ? orderBy(data, 'prefLabel') : data + data = orderBy(data, 'prefLabel') } return data } @@ -83,7 +83,7 @@ const ObjectList = props => { if (data == null || data === '-') { return '-' } else if (Array.isArray(data)) { - data = sortList(data) + data = sortValues ? sortList(data) : data return ( <> {!props.expanded && renderItem({ collapsed: true, itemData: data[0], isFirstValue: true })} diff --git a/src/client/components/facet_results/ResultTable.js b/src/client/components/facet_results/ResultTable.js index c581669ac0b7b806220da265dfef2f4cfd6451a2..d441ac144f09d8496e5ec85a4130a348e174dd3d 100644 --- a/src/client/components/facet_results/ResultTable.js +++ b/src/client/components/facet_results/ResultTable.js @@ -200,6 +200,7 @@ class ResultTable extends React.Component { makeLink={column.makeLink} externalLink={column.externalLink} sortValues={column.sortValues} + sortBy={column.sortBy} numberedList={column.numberedList} minWidth={column.minWidth} container='cell' diff --git a/src/client/components/facet_results/ResultTableCell.js b/src/client/components/facet_results/ResultTableCell.js index 3515cef61e8450c6a82b3f5ce0e44a7907a3dc29..ab754915c64b0c774dbb20dc0bc68b17c009ce33 100644 --- a/src/client/components/facet_results/ResultTableCell.js +++ b/src/client/components/facet_results/ResultTableCell.js @@ -6,7 +6,7 @@ import StringList from './StringList' const ResultTableCell = props => { const { - data, valueType, makeLink, externalLink, sortValues, numberedList, minWidth, + data, valueType, makeLink, externalLink, sortValues, sortBy, numberedList, minWidth, container, columnId, expanded, linkAsButton, collapsedMaxWords, showSource, sourceExternalLink, renderAsHTML } = props @@ -20,6 +20,7 @@ const ResultTableCell = props => { makeLink={makeLink} externalLink={externalLink} sortValues={sortValues} + sortBy={sortBy} numberedList={numberedList} columnId={columnId} expanded={expanded} @@ -61,6 +62,7 @@ ResultTableCell.propTypes = { makeLink: PropTypes.bool.isRequired, externalLink: PropTypes.bool.isRequired, sortValues: PropTypes.bool.isRequired, + sortBy: PropTypes.string, numberedList: PropTypes.bool.isRequired, expanded: PropTypes.bool.isRequired, collapsedMaxWords: PropTypes.number, diff --git a/src/client/components/main_layout/InstanceHomePageTable.js b/src/client/components/main_layout/InstanceHomePageTable.js index 3145942a0b980c8cab43dab130fb6ad2e825f09c..1069c5a0b6d81cbec8b2a84ca42581a9661a2bb2 100644 --- a/src/client/components/main_layout/InstanceHomePageTable.js +++ b/src/client/components/main_layout/InstanceHomePageTable.js @@ -66,6 +66,7 @@ const InstanceHomePageTable = props => { makeLink={row.makeLink} externalLink={row.externalLink} sortValues={row.sortValues} + sortBy={row.sortBy} numberedList={row.numberedList} container='cell' expanded