diff --git a/src/client/components/facet_results/ObjectListCollapsible.js b/src/client/components/facet_results/ObjectListCollapsible.js index cfa9a1f938badb9488d78e6298ad605d5cefe2a2..1b3e92c7591068dcf4f93319e535a15cedd98518 100644 --- a/src/client/components/facet_results/ObjectListCollapsible.js +++ b/src/client/components/facet_results/ObjectListCollapsible.js @@ -31,7 +31,7 @@ const styles = () => ({ const ObjectList = props => { const { sortValues, sortBy, makeLink, externalLink, linkAsButton, columnId, showSource, - sourceExternalLink, numberedList + sourceExternalLink, numberedList, collapsedMaxWords } = props let { data } = props @@ -72,6 +72,8 @@ const ObjectList = props => { makeLink={makeLink} externalLink={externalLink} linkAsButton={linkAsButton} + isFirstValue={isFirstValue} + collapsedMaxWords={collapsedMaxWords} /> {collapsed && <span> ...</span>} {showSource && itemData.source && diff --git a/src/client/components/facet_results/ObjectListItem.js b/src/client/components/facet_results/ObjectListItem.js index 33a94c62626696db2d0f58cc00a538b16675a606..d0d883205a5c6cbf4cc2a647650d55adf6b29182 100644 --- a/src/client/components/facet_results/ObjectListItem.js +++ b/src/client/components/facet_results/ObjectListItem.js @@ -3,8 +3,14 @@ import PropTypes from 'prop-types' import ObjectListItemLink from './ObjectListItemLink' const ObjectListItem = props => { - const { data, makeLink, externalLink, linkAsButton } = props - const label = Array.isArray(data.prefLabel) ? data.prefLabel[0] : data.prefLabel + const { data, makeLink, externalLink, linkAsButton, isFirstValue, collapsedMaxWords } = props + let label = Array.isArray(data.prefLabel) ? data.prefLabel[0] : data.prefLabel + if (isFirstValue && collapsedMaxWords) { + const wordCount = label.split(' ').length + if (wordCount > collapsedMaxWords) { + label = label.trim().split(' ').splice(0, props.collapsedMaxWords).join(' ') + } + } return ( <> {!makeLink && label} diff --git a/src/client/components/facet_results/ResultTable.js b/src/client/components/facet_results/ResultTable.js index 91c36cd270cf8ec9e9351fe36002ff4da5930fe9..d0f108a1a054180298c014d58e9a0d5b387a7b13 100644 --- a/src/client/components/facet_results/ResultTable.js +++ b/src/client/components/facet_results/ResultTable.js @@ -290,7 +290,8 @@ class ResultTable extends React.Component { <div className={classes.progressContainer}> <CircularProgress style={{ color: purple[500] }} thickness={5} /> </div> - ) : ( + ) + : ( <Table size='small'> <ResultTableHead resultClass={this.props.resultClass} @@ -304,7 +305,7 @@ class ResultTable extends React.Component { {paginatedResults.map(row => this.rowRenderer(row))} </TableBody> </Table> - )} + )} </div> </> ) diff --git a/src/client/components/facet_results/ResultTableCell.js b/src/client/components/facet_results/ResultTableCell.js index 82a8692b966ef59c0113b5a4bb302b5edd53c11c..428f6753b7ed1908e8947918640a6d2f338abe5c 100644 --- a/src/client/components/facet_results/ResultTableCell.js +++ b/src/client/components/facet_results/ResultTableCell.js @@ -18,7 +18,7 @@ const ResultTableCell = props => { } switch (valueType) { case 'object': - cellContent = + cellContent = ( <ObjectListCollapsible data={data} makeLink={makeLink} @@ -28,13 +28,15 @@ const ResultTableCell = props => { numberedList={numberedList} columnId={columnId} expanded={expanded} + collapsedMaxWords={collapsedMaxWords} linkAsButton={linkAsButton} showSource={showSource} sourceExternalLink={sourceExternalLink} /> + ) break case 'string': - cellContent = + cellContent = ( <StringList data={data} expanded={expanded} @@ -44,6 +46,7 @@ const ResultTableCell = props => { referencedTerm={referencedTerm} numberedList={numberedList} /> + ) break case 'image': cellContent = data && data !== '-' diff --git a/src/client/reducers/sampo/perspective1.js b/src/client/reducers/sampo/perspective1.js index c60b02f5d145fe65ef114559690a99d79c59e80e..6425548a362197d7513422c8e94f2150ce6446d0 100644 --- a/src/client/reducers/sampo/perspective1.js +++ b/src/client/reducers/sampo/perspective1.js @@ -75,6 +75,7 @@ export const INITIAL_STATE = { sortValues: true, numberedList: false, minWidth: 200, + collapsedMaxWords: 3, priority: 5 }, { @@ -85,6 +86,7 @@ export const INITIAL_STATE = { sortValues: true, numberedList: false, minWidth: 180, + collapsedMaxWords: 3, priority: 5 }, {