From a12989394d07ad717314e6fcd5251239aed6900c Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Wed, 15 Mar 2023 14:54:15 +0100
Subject: [PATCH] SSDM-13463 : Export selection of fields from tables - UI part
 - adjust the exported_fields parameter for exported kinds that do not have a
 type (e.g. entity types)

---
 .../components/common/grid/GridController.js  | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/ui-admin/src/js/components/common/grid/GridController.js b/ui-admin/src/js/components/common/grid/GridController.js
index ce33ffdad45..ad1505dfd96 100644
--- a/ui-admin/src/js/components/common/grid/GridController.js
+++ b/ui-admin/src/js/components/common/grid/GridController.js
@@ -1311,18 +1311,26 @@ export default class GridController {
           }
         })
 
-        // build exported fields map: { kind: { type: [{ type: "PROPERTY/ATTRIBUTE", id: "propertyCode/attributeCode"}, ...], ... }, ... }
+        // build exported fields map:
+        // - entities:  { kind: { type: [{ type: "PROPERTY/ATTRIBUTE", id: "propertyCode/attributeCode"}, ...], ... }, ... }
+        // - non-entities:  { kind: [{ type: "ATTRIBUTE", id: "attributeCode"}, ...], ... }
+
         exportedRows.forEach(exportedRow => {
           const { exportable_kind, type_perm_id } = exportedRow.exportableId
 
-          if (exportable_kind && type_perm_id) {
+          if (!_.isNil(exportable_kind)) {
             let exportedFieldsForKind = exportedFieldsMap[exportable_kind]
 
-            if (!exportedFieldsForKind) {
-              exportedFieldsMap[exportable_kind] = exportedFieldsForKind = {}
+            if (!_.isNil(type_perm_id)) {
+              if (_.isNil(exportedFieldsForKind)) {
+                exportedFieldsMap[exportable_kind] = exportedFieldsForKind = {}
+              }
+              exportedFieldsForKind[type_perm_id] = exportableFields
+            } else {
+              if (_.isNil(exportedFieldsForKind)) {
+                exportedFieldsMap[exportable_kind] = exportableFields
+              }
             }
-
-            exportedFieldsForKind[type_perm_id] = exportableFields
           }
         })
       } else {
-- 
GitLab