From 91b9dc0d72c86b54664a1c4ae0ef6c5f5fa56d31 Mon Sep 17 00:00:00 2001
From: Pithon Kabiro <pithon.kabiro@hft-stuttgart.de>
Date: Mon, 19 Jul 2021 20:19:38 +0200
Subject: [PATCH] Edit function: chart type selection callback

---
 public/js/dropDownList.js | 39 ++++++++++++++++++++++++++++-----------
 1 file changed, 28 insertions(+), 11 deletions(-)

diff --git a/public/js/dropDownList.js b/public/js/dropDownList.js
index c63e6c6..f02ff4b 100644
--- a/public/js/dropDownList.js
+++ b/public/js/dropDownList.js
@@ -173,6 +173,13 @@ const getSelectedOptionsFromDropDownLists = function () {
     "#drop-down--sampling-rate"
   ).value;
 
+  if (
+    selectedBuilding === "--Select--" ||
+    selectedSensor === "" ||
+    selectedSamplingRate === ""
+  )
+    return;
+
   return [selectedBuilding, selectedSensor, selectedSamplingRate];
 };
 
@@ -223,10 +230,12 @@ const getBuildingSensorSamplingRateAbbreviation = function (
   return [buildingAbbrev, phenomenonAbbrev, samplingRateAbbrev];
 };
 
-const runFromOptionThree = async function () {
+const selectChartTypeFromDropDown = async function () {
   try {
     const selectedOptions = getSelectedOptionsFromDropDownLists();
 
+    if (selectedOptions === undefined) return;
+
     const abbreviationsArr = getBuildingSensorSamplingRateAbbreviation(
       ...selectedOptions
     );
@@ -235,6 +244,12 @@ const runFromOptionThree = async function () {
       ...abbreviationsArr
     );
 
+    const selectedChartType = document.querySelector(
+      "#drop-down--chart-type"
+    ).value;
+
+    if (selectedChartType === "--Select--") return;
+
     const URL_DATASTREAM = getDatastreamUrl(BASE_URL, selectedDatastream);
 
     const URL_OBSERVATIONS = getObservationsUrl(BASE_URL, selectedDatastream);
@@ -255,15 +270,17 @@ const runFromOptionThree = async function () {
     const combinedObs = metadataPlusObservations[0];
     const datastreamMetadata = metadataPlusObservations[1];
 
-    drawLineChartHC(
-      formatSTAResponseForLineChart(combinedObs),
-      formatDatastreamMetadataForChart(datastreamMetadata)
-    );
-
-    drawHeatMapHC(
-      formatSTAResponseForHeatMap(combinedObs),
-      formatDatastreamMetadataForChart(datastreamMetadata)
-    );
+    if (selectedChartType === "Line") {
+      drawLineChartHC(
+        formatSTAResponseForLineChart(combinedObs),
+        formatDatastreamMetadataForChart(datastreamMetadata)
+      );
+    } else if (selectedChartType === "Heatmap") {
+      drawHeatMapHC(
+        formatSTAResponseForHeatMap(combinedObs),
+        formatDatastreamMetadataForChart(datastreamMetadata)
+      );
+    }
   } catch (err) {
     console.error(err);
   }
@@ -271,4 +288,4 @@ const runFromOptionThree = async function () {
 
 document
   .querySelector("#drop-down--chart-type")
-  .addEventListener("change", runFromOptionThree);
+  .addEventListener("change", selectChartTypeFromDropDown);
-- 
GitLab