From 365b45c4d3ad4dc62b9d541bd1b4c8bdd413613d Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Wed, 11 Sep 2019 10:54:26 +0300
Subject: [PATCH] Hierarchical facet: return also flat version of data

---
 src/client/actions/index.js      |  4 ++--
 src/server/sparql/FacetValues.js | 23 ++++++++++++++++-------
 src/server/sparql/Mappers.js     |  6 ++++--
 3 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/src/client/actions/index.js b/src/client/actions/index.js
index 56ef29f7..0209a226 100644
--- a/src/client/actions/index.js
+++ b/src/client/actions/index.js
@@ -105,11 +105,11 @@ export const updateFacetValues = ({
   facetClass,
   id,
   data,
-  flatValues,
+  flatData,
   sparqlQuery
 }) => ({
   type: UPDATE_FACET_VALUES,
-  facetClass, id, data, flatValues, sparqlQuery
+  facetClass, id, data, flatData, sparqlQuery
 });
 export const updateFacetOption = ({ facetClass, facetID, option, value }) => ({
   type: UPDATE_FACET_OPTION,
diff --git a/src/server/sparql/FacetValues.js b/src/server/sparql/FacetValues.js
index 386ce1f1..2a4310ab 100644
--- a/src/server/sparql/FacetValues.js
+++ b/src/server/sparql/FacetValues.js
@@ -121,13 +121,22 @@ export const getFacet = async ({
   }
   // console.log(prefixes + q)
   const response = await runSelectQuery(prefixes + q, endpoint, mapper, resultFormat);
-  return({
-    facetClass: facetClass,
-    id: facetID,
-    data: response.data,
-    flatData: response.flatData || null,
-    sparqlQuery: response.sparqlQuery
-  });
+  if (facetConfig.type === 'hierarchical') {
+    return({
+      facetClass: facetClass,
+      id: facetID,
+      data: response.data.treeData,
+      flatData: response.data.flatData,
+      sparqlQuery: response.sparqlQuery
+    });
+  } else {
+    return({
+      facetClass: facetClass,
+      id: facetID,
+      data: response.data,
+      sparqlQuery: response.sparqlQuery
+    });
+  }
 };
 
 const generateSelectedBlock = ({
diff --git a/src/server/sparql/Mappers.js b/src/server/sparql/Mappers.js
index ecf1b4b6..0d07fda4 100644
--- a/src/server/sparql/Mappers.js
+++ b/src/server/sparql/Mappers.js
@@ -29,7 +29,6 @@ export const mapFacet = sparqlBindings => {
 
 export const mapHierarchicalFacet = sparqlBindings => {
   const results = mapFacetValues(sparqlBindings);
-  //const flatResults = results;
   let treeData = getTreeFromFlatData({
     flatData: results,
     getKey: node => node.id, // resolve a node's key
@@ -38,7 +37,10 @@ export const mapHierarchicalFacet = sparqlBindings => {
   });
   treeData = recursiveSort(treeData);
   treeData.forEach(node => sumUpAndSelectChildren(node));
-  return treeData;
+  return ({
+    treeData,
+    flatData: results
+  });
 };
 
 export const mapTimespanFacet = sparqlBindings => {
-- 
GitLab