diff --git a/src/pages/profile/UserFieldsDisplaySettings.js b/src/pages/profile/UserFieldsDisplaySettings.js index 575ea84b405bd99bcc0fe489a3944552a540be5f..2984427619b8b2f00ea6c6664cfa872543663f32 100644 --- a/src/pages/profile/UserFieldsDisplaySettings.js +++ b/src/pages/profile/UserFieldsDisplaySettings.js @@ -74,7 +74,6 @@ const UserFieldsDisplaySettings = ({ userSettings, setUserSettings, publicFields id: field.id, label: buildFieldName(field.field_name), checked: isOptionChecked(field.id), - disabled: field.field_type === 'List', toolTipContent: field.definition_and_comment, toolTipProps: { position: 'bottom' }, }); diff --git a/src/pages/results/ResultsTableMUI.js b/src/pages/results/ResultsTableMUI.js index b34d07e23f0753c2056fef1ec2a0b9cec58df786..1a7b22b8d70ea9331a31eaa71a8c32210272873d 100644 --- a/src/pages/results/ResultsTableMUI.js +++ b/src/pages/results/ResultsTableMUI.js @@ -68,15 +68,38 @@ const ResultsTableMUI = ({ dataColumns.push({ name: publicField.field_name, label: buildFieldName(publicField.field_name), - options: { display: userFieldsIds.includes(publicField.id) }, + options: { + display: userFieldsIds.includes(publicField.id), + customBodyRenderLite: (dataIndex, rowIndex) => { + let value = rows[rowIndex][publicField.field_name]; + if (value && value.length >= 150) { + value = value.substring(0, 150) + ' ...'; + } + return value; + }, + setCellProps: () => ({ + style: { + maxWidth: '350px', + }, + }), + }, }); }); + // sort columns alphabetically for clarity + dataColumns.sort((a, b) => (a.name > b.name ? 1 : -1)); return dataColumns; }, [publicFields, userFieldsIds]); // Returns value from JSON obj associated to key string. const getValueByPath = (obj, path) => { - return path.split('.').reduce((acc, key) => acc && acc[key], obj); + return path.split('.').reduce((acc, key) => { + if (Array.isArray(acc)) { + // For objects with cardinality, defaults to the first element of the array + // TODO add a way to view other elements of the array when possible. + acc = acc[0]; + } + return acc && acc[key]; + }, obj); }; const rows = useMemo(() => { @@ -176,6 +199,10 @@ const ResultsTableMUI = ({ filter: true, filterType: 'textField', responsive: 'standard', + draggableColumns: { + enabled: true, + transitionTime: 200, + }, selectableRows: 'multiple', selectableRowsOnClick: false, rowsSelected: selectedRows,