From 5fef478917ddfc8e780cb83de6bc90b562c74c81 Mon Sep 17 00:00:00 2001 From: MonikaFu Date: Mon, 18 Nov 2024 14:33:37 +0100 Subject: [PATCH] Inform user when no data found for a sector/asset class --- src/routes/sector_view.svelte | 112 +++++++++++++++++++++++++--------- 1 file changed, 84 insertions(+), 28 deletions(-) diff --git a/src/routes/sector_view.svelte b/src/routes/sector_view.svelte index 56d47ab..9a3e8e5 100644 --- a/src/routes/sector_view.svelte +++ b/src/routes/sector_view.svelte @@ -64,6 +64,37 @@ ); } + function checkDataAvailability() { + let selectedClass = document.querySelector('#asset_class_selector').value; + let selectedSector = document.querySelector('#sector_selector').value; + + let filteredTechmixData = techmix_data + .filter((d) => d.asset_class == selectedClass) + .filter((d) => d.ald_sector == selectedSector); + + let filteredVolTrajData = traj_data + .filter((d) => d.asset_class == selectedClass) + .filter((d) => d.ald_sector == selectedSector); + + let filteredEmissionsData = emissions_data + .filter((d) => d.asset_class == selectedClass) + .filter((d) => d.ald_sector == selectedSector); + + let check = [filteredTechmixData, filteredVolTrajData, filteredEmissionsData].some(x => x.length != 0) + + return(check) + }; + + function handleNoDataForAssetSectorCombination() { + document.querySelector('#analysis-content').classList.add('hidden'); + document.querySelector('#alert-message').classList.remove('hidden'); + }; + + function showAnalysisHideAlert() { + document.querySelector('#analysis-content').classList.remove('hidden'); + document.querySelector('#alert-message').classList.add('hidden'); + }; + function updateScenarioSourceSelector() { let selectedSource = document.querySelector('#scenario_source_selector').value; @@ -214,32 +245,47 @@ document.querySelector('#content-landing-page').classList.toggle('hidden'); document.querySelector('#content-sector-view').classList.toggle('hidden'); fetchExposureStats(); - fetchTrajectoryAlignment(); - fetchTechmix(); - fetchEmissionIntensityPlot(); + if (checkDataAvailability()) { + showAnalysisHideAlert(); + fetchTrajectoryAlignment(); + fetchTechmix(); + fetchEmissionIntensityPlot(); + } else { + handleNoDataForAssetSectorCombination(); + }; }); sector_selector.addEventListener('change', function () { fetchExposureStats(); - updateScenarioSourceSelector(); - updateScenarioSelector(); - updateEquityMarketSelector(); - updateBenchmarkSelector(); - fetchTrajectoryAlignment(); - fetchTechmix(); - fetchEmissionIntensityPlot(); + if (checkDataAvailability()) { + showAnalysisHideAlert(); + updateScenarioSourceSelector(); + updateScenarioSelector(); + updateEquityMarketSelector(); + updateBenchmarkSelector(); + fetchTrajectoryAlignment(); + fetchTechmix(); + fetchEmissionIntensityPlot(); + } else { + handleNoDataForAssetSectorCombination(); + }; }); asset_class_selector.addEventListener('change', function () { fetchExposureStats(); - updateScenarioSourceSelector(); - updateScenarioSelector(); - updateAllocationMethodSelector(); - updateEquityMarketSelector(); - updateBenchmarkSelector(); - fetchTrajectoryAlignment(); - fetchTechmix(); - fetchEmissionIntensityPlot(); + if (checkDataAvailability()) { + showAnalysisHideAlert(); + updateScenarioSourceSelector(); + updateScenarioSelector(); + updateAllocationMethodSelector(); + updateEquityMarketSelector(); + updateBenchmarkSelector(); + fetchTrajectoryAlignment(); + fetchTechmix(); + fetchEmissionIntensityPlot(); + } else { + handleNoDataForAssetSectorCombination(); + }; }); const benchmark_selector = document.querySelector('#benchmark_selector'); benchmark_selector.addEventListener('change', function () { @@ -273,15 +319,20 @@ setValuesSectorSelectors(); setValuesAssetClassSelector(); fetchExposureStats(); - updateScenarioSourceSelector(); - updateScenarioSelector(); - updateAllocationMethodSelector(); - updateEquityMarketSelector(); - updateBenchmarkSelector(); - addEventListeners(); - fetchTechmix(); - fetchTrajectoryAlignment(); - fetchEmissionIntensityPlot(); + if (checkDataAvailability()) { + showAnalysisHideAlert(); + updateScenarioSourceSelector(); + updateScenarioSelector(); + updateAllocationMethodSelector(); + updateEquityMarketSelector(); + updateBenchmarkSelector(); + addEventListeners(); + fetchTechmix(); + fetchTrajectoryAlignment(); + fetchEmissionIntensityPlot(); + } else { + handleNoDataForAssetSectorCombination(); + }; }); @@ -343,7 +394,7 @@
-
+
@@ -437,6 +488,11 @@
+ +