From 366b9dc54084fb025916ac358cf8d99acd865576 Mon Sep 17 00:00:00 2001 From: rbisson <remi.bisson@inrae.fr> Date: Fri, 13 Dec 2024 15:06:10 +0100 Subject: [PATCH 1/2] [ResultsTableMUI] build columns now using all public fields but displaying only those from user settings or default --- src/pages/results/ResultsTableMUI.js | 38 ++++++++++------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/src/pages/results/ResultsTableMUI.js b/src/pages/results/ResultsTableMUI.js index 01e8b5d..01ae83b 100644 --- a/src/pages/results/ResultsTableMUI.js +++ b/src/pages/results/ResultsTableMUI.js @@ -54,9 +54,10 @@ const ResultsTableMUI = ({ if (!searchResults && searchResults.length > 0) { return; } - getColumnFields().then((columnFields) => { - setColumns(buildColumns(columnFields)); - setRows(buildRows(searchResults, columnFields)); + getStdFieldsIds().then((stdFieldsIds) => { + const columns = buildColumns(stdFieldsIds); + setColumns(columns); + setRows(buildRows(searchResults, columns)); setIsLoading(false); }); }, [publicFields]); @@ -74,34 +75,23 @@ const ResultsTableMUI = ({ return stdFieldsIds; }; - // Get fields data from ids - const getColumnFields = async () => { - const stdFieldsIds = await getStdFieldsIds(); - return publicFields.filter((stdField) => { - return stdFieldsIds.includes(stdField.id); - }); - }; - // Returns value from JSON obj associated to key string. const getValueByPath = (obj, path) => { return path.split('.').reduce((acc, key) => acc && acc[key], obj); }; // Build each row in table from search results data - const buildRows = (results, columnFields) => { + const buildRows = (results, columns) => { let dataRows = []; if (results.length === 0) { return dataRows; } - results.forEach((result, index) => { + results.forEach((result) => { let row = { id: result.id, }; - columnFields.forEach((columnField) => { - const fieldValue = getValueByPath(result, columnField.field_name); - if (typeof fieldValue === 'string') { - row[columnField.field_name] = fieldValue; - } + columns.forEach((columnField) => { + row[columnField.name] = getValueByPath(result, columnField.name); }); dataRows.push(row); }); @@ -109,7 +99,7 @@ const ResultsTableMUI = ({ }; // Build table columns names (label and name) - const buildColumns = (columnFields) => { + const buildColumns = (stdFieldsIds) => { let dataColumns = []; dataColumns.push({ name: 'id', @@ -118,12 +108,12 @@ const ResultsTableMUI = ({ display: 'excluded', }, }); - columnFields.forEach((columnField) => { + publicFields.forEach((publicField) => { dataColumns.push({ - name: columnField.field_name, - label: buildFieldName(columnField.field_name), + name: publicField.field_name, + label: buildFieldName(publicField.field_name), options: { - display: true, + display: stdFieldsIds.includes(publicField.id), }, }); }); @@ -212,7 +202,7 @@ const ResultsTableMUI = ({ onChangeRowsPerPage: (newRowsPerPage) => { setRowsPerPage(newRowsPerPage); }, - rowsPerPageOptions: [15, 30, 50, 100], + rowsPerPageOptions: [15, 30, 50, 100, 250], jumpToPage: true, searchPlaceholder: t('results:table.search'), elevation: 0, // remove the boxShadow style -- GitLab From 01111b04fda00500e57dad14d33bd2bbdc77e61b Mon Sep 17 00:00:00 2001 From: rbisson <remi.bisson@inrae.fr> Date: Fri, 13 Dec 2024 16:03:35 +0100 Subject: [PATCH 2/2] [ResultsTableMUI] now displaying value of type number in table rows --- src/pages/results/ResultsTableMUI.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/results/ResultsTableMUI.js b/src/pages/results/ResultsTableMUI.js index 01ae83b..e3e8887 100644 --- a/src/pages/results/ResultsTableMUI.js +++ b/src/pages/results/ResultsTableMUI.js @@ -91,7 +91,12 @@ const ResultsTableMUI = ({ id: result.id, }; columns.forEach((columnField) => { - row[columnField.name] = getValueByPath(result, columnField.name); + const fieldValue = getValueByPath(result, columnField.name); + if (typeof fieldValue === 'string') { + row[columnField.name] = fieldValue; + } else if (typeof fieldValue === 'number') { + row[columnField.name] = fieldValue.toString(); + } }); dataRows.push(row); }); -- GitLab