Skip to content

Commit ffe7424

Browse files
authored
Inform user when no data found for a sector/asset class (#60)
1 parent af5ea08 commit ffe7424

File tree

1 file changed

+84
-28
lines changed

1 file changed

+84
-28
lines changed

src/routes/sector_view.svelte

Lines changed: 84 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,37 @@
6464
);
6565
}
6666
67+
function checkDataAvailability() {
68+
let selectedClass = document.querySelector('#asset_class_selector').value;
69+
let selectedSector = document.querySelector('#sector_selector').value;
70+
71+
let filteredTechmixData = techmix_data
72+
.filter((d) => d.asset_class == selectedClass)
73+
.filter((d) => d.ald_sector == selectedSector);
74+
75+
let filteredVolTrajData = traj_data
76+
.filter((d) => d.asset_class == selectedClass)
77+
.filter((d) => d.ald_sector == selectedSector);
78+
79+
let filteredEmissionsData = emissions_data
80+
.filter((d) => d.asset_class == selectedClass)
81+
.filter((d) => d.ald_sector == selectedSector);
82+
83+
let check = [filteredTechmixData, filteredVolTrajData, filteredEmissionsData].some(x => x.length != 0)
84+
85+
return(check)
86+
};
87+
88+
function handleNoDataForAssetSectorCombination() {
89+
document.querySelector('#analysis-content').classList.add('hidden');
90+
document.querySelector('#alert-message').classList.remove('hidden');
91+
};
92+
93+
function showAnalysisHideAlert() {
94+
document.querySelector('#analysis-content').classList.remove('hidden');
95+
document.querySelector('#alert-message').classList.add('hidden');
96+
};
97+
6798
function updateScenarioSourceSelector() {
6899
let selectedSource = document.querySelector('#scenario_source_selector').value;
69100
@@ -214,32 +245,47 @@
214245
document.querySelector('#content-landing-page').classList.toggle('hidden');
215246
document.querySelector('#content-sector-view').classList.toggle('hidden');
216247
fetchExposureStats();
217-
fetchTrajectoryAlignment();
218-
fetchTechmix();
219-
fetchEmissionIntensityPlot();
248+
if (checkDataAvailability()) {
249+
showAnalysisHideAlert();
250+
fetchTrajectoryAlignment();
251+
fetchTechmix();
252+
fetchEmissionIntensityPlot();
253+
} else {
254+
handleNoDataForAssetSectorCombination();
255+
};
220256
});
221257
222258
sector_selector.addEventListener('change', function () {
223259
fetchExposureStats();
224-
updateScenarioSourceSelector();
225-
updateScenarioSelector();
226-
updateEquityMarketSelector();
227-
updateBenchmarkSelector();
228-
fetchTrajectoryAlignment();
229-
fetchTechmix();
230-
fetchEmissionIntensityPlot();
260+
if (checkDataAvailability()) {
261+
showAnalysisHideAlert();
262+
updateScenarioSourceSelector();
263+
updateScenarioSelector();
264+
updateEquityMarketSelector();
265+
updateBenchmarkSelector();
266+
fetchTrajectoryAlignment();
267+
fetchTechmix();
268+
fetchEmissionIntensityPlot();
269+
} else {
270+
handleNoDataForAssetSectorCombination();
271+
};
231272
});
232273
233274
asset_class_selector.addEventListener('change', function () {
234275
fetchExposureStats();
235-
updateScenarioSourceSelector();
236-
updateScenarioSelector();
237-
updateAllocationMethodSelector();
238-
updateEquityMarketSelector();
239-
updateBenchmarkSelector();
240-
fetchTrajectoryAlignment();
241-
fetchTechmix();
242-
fetchEmissionIntensityPlot();
276+
if (checkDataAvailability()) {
277+
showAnalysisHideAlert();
278+
updateScenarioSourceSelector();
279+
updateScenarioSelector();
280+
updateAllocationMethodSelector();
281+
updateEquityMarketSelector();
282+
updateBenchmarkSelector();
283+
fetchTrajectoryAlignment();
284+
fetchTechmix();
285+
fetchEmissionIntensityPlot();
286+
} else {
287+
handleNoDataForAssetSectorCombination();
288+
};
243289
});
244290
const benchmark_selector = document.querySelector('#benchmark_selector');
245291
benchmark_selector.addEventListener('change', function () {
@@ -273,15 +319,20 @@
273319
setValuesSectorSelectors();
274320
setValuesAssetClassSelector();
275321
fetchExposureStats();
276-
updateScenarioSourceSelector();
277-
updateScenarioSelector();
278-
updateAllocationMethodSelector();
279-
updateEquityMarketSelector();
280-
updateBenchmarkSelector();
281-
addEventListeners();
282-
fetchTechmix();
283-
fetchTrajectoryAlignment();
284-
fetchEmissionIntensityPlot();
322+
if (checkDataAvailability()) {
323+
showAnalysisHideAlert();
324+
updateScenarioSourceSelector();
325+
updateScenarioSelector();
326+
updateAllocationMethodSelector();
327+
updateEquityMarketSelector();
328+
updateBenchmarkSelector();
329+
addEventListeners();
330+
fetchTechmix();
331+
fetchTrajectoryAlignment();
332+
fetchEmissionIntensityPlot();
333+
} else {
334+
handleNoDataForAssetSectorCombination();
335+
};
285336
});
286337
</script>
287338

@@ -343,7 +394,7 @@
343394
<div class="exposure-stats" id="exposure-stats"></div>
344395
</div>
345396
</div>
346-
<div class="analysis-content grid sm:grid-cols-12 p-4 bg-teal-300">
397+
<div class="analysis-content grid sm:grid-cols-12 p-4 bg-teal-300" id="analysis-content">
347398
<div class="analysis-plots sm:col-span-10 p-4 bg-yellow-300">
348399
<div class="plot-trajectory-box grid p-4 bg-orange-300">
349400
<div class="trajectory-explanation bg-cyan-300">
@@ -437,6 +488,11 @@
437488
</div>
438489
</div>
439490

491+
<div class="alert-message bg-blue-100 border-t border-b border-blue-500 text-blue-700 px-4 py-3 hidden" role="alert" id="alert-message">
492+
<p class="font-bold">No data found for this asset class / sector combination</p>
493+
<p class="text-sm">Please make a different selecion.</p>
494+
</div>
495+
440496
<style>
441497
.hide {
442498
display: none;

0 commit comments

Comments
 (0)