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