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