From 9c733766a97e00202fccef7040617ac3716d008c Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Thu, 16 Dec 2021 17:23:37 +0200
Subject: [PATCH] ApexCharts config: support multiple result classes

---
 .../components/facet_results/ResultClassRoute.js    | 13 +++++++++++--
 src/client/components/main_layout/MuiIcon.js        |  6 ++++--
 src/client/library_configs/Leaflet/LeafletConfig.js |  6 ++++++
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/client/components/facet_results/ResultClassRoute.js b/src/client/components/facet_results/ResultClassRoute.js
index 626c8073..bce94611 100644
--- a/src/client/components/facet_results/ResultClassRoute.js
+++ b/src/client/components/facet_results/ResultClassRoute.js
@@ -213,7 +213,9 @@ const ResultClassRoute = props => {
         seriesTitle,
         stroke,
         fill,
-        createChartData
+        createChartData,
+        doNotRenderOnMount = false,
+        dropdownForResultClasses = false
       } = resultClassConfig
       const apexProps = {
         portalConfig,
@@ -235,7 +237,14 @@ const ResultClassRoute = props => {
         seriesTitle,
         stroke,
         fill,
-        layoutConfig: props.layoutConfig
+        layoutConfig: props.layoutConfig,
+        doNotRenderOnMount,
+        dropdownForResultClasses
+      }
+      if (dropdownForResultClasses && has(resultClassConfig, 'resultClasses')) {
+        apexProps.resultClass = resultClassConfig.resultClasses[0]
+        apexProps.resultClasses = resultClassConfig.resultClasses
+        apexProps.dropdownForResultClasses = true
       }
       routeComponent = (
         <Route
diff --git a/src/client/components/main_layout/MuiIcon.js b/src/client/components/main_layout/MuiIcon.js
index 0dc5307b..ea108b95 100644
--- a/src/client/components/main_layout/MuiIcon.js
+++ b/src/client/components/main_layout/MuiIcon.js
@@ -9,7 +9,8 @@ import {
   PieChart,
   CloudDownload,
   BubbleChart,
-  ShowChart
+  ShowChart,
+  FormatAlignJustify
 } from '@material-ui/icons'
 import has from 'lodash'
 
@@ -24,7 +25,8 @@ const MuiIcon = props => {
     PieChart: PieChart,
     CloudDownload: CloudDownload,
     BubbleChart: BubbleChart,
-    ShowChart: ShowChart
+    ShowChart: ShowChart,
+    FormatAlignJustify: FormatAlignJustify
   }
   if (has(MuiIcons, props.iconName)) {
     const MuiIconComponent = MuiIcons[props.iconName]
diff --git a/src/client/library_configs/Leaflet/LeafletConfig.js b/src/client/library_configs/Leaflet/LeafletConfig.js
index a69cb071..e4845aab 100644
--- a/src/client/library_configs/Leaflet/LeafletConfig.js
+++ b/src/client/library_configs/Leaflet/LeafletConfig.js
@@ -14,6 +14,12 @@ export const createPopUpContentDefault = ({ data, resultClass }) => {
     link.textContent = data.prefLabel.prefLabel
     link.style.cssText = 'cursor: pointer; text-decoration: underline'
     h3.appendChild(link)
+  } else if (has(data, 'dataProviderUrl')) {
+    const link = document.createElement('a')
+    link.addEventListener('click', () => history.push(data.dataProviderUrl))
+    link.textContent = data.prefLabel.prefLabel
+    link.style.cssText = 'cursor: pointer; text-decoration: underline'
+    h3.appendChild(link)
   } else {
     h3.textContent = data.prefLabel.prefLabel
   }
-- 
GitLab