Skip to content
Snippets Groups Projects
Commit a7cf110a authored by esikkala's avatar esikkala
Browse files

Result table cell: add sortBy option

parent 7adda3b9
No related branches found
No related tags found
No related merge requests found
......@@ -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 })}
......
......@@ -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'
......
......@@ -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,
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment