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