adding slider to MedianOfFreeBedsByKreisChartView

This commit is contained in:
frankknoll
2022-03-20 17:36:26 +01:00
parent 771e921126
commit ae5701310c
4 changed files with 36 additions and 14 deletions

View File

@@ -21,6 +21,11 @@ class MedianOfFreeBedsByKreisChartView {
}); });
} }
setData(data) {
this.#chart.config.data.datasets[0].data = data;
this.#chart.update();
}
#getData(data, label) { #getData(data, label) {
return { return {
datasets: [ datasets: [

View File

@@ -25,16 +25,6 @@
document.addEventListener( document.addEventListener(
"DOMContentLoaded", "DOMContentLoaded",
event => { event => {
const slider = document.getElementById('slider');
noUiSlider.create(slider, {
start: [20, 80],
connect: true,
range: {
'min': 0,
'max': 100
}
});
slider.noUiSlider.on('update', values => console.log(values[0], ' - ', values[1]));
const intensiveCareCapacitiesChartView = new IntensiveCareCapacitiesChartView(document.getElementById("intensiveCareCapacities")); const intensiveCareCapacitiesChartView = new IntensiveCareCapacitiesChartView(document.getElementById("intensiveCareCapacities"));
const freeBedsChartView = new FreeBedsChartView(document.getElementById('freeBeds')); const freeBedsChartView = new FreeBedsChartView(document.getElementById('freeBeds'));
const kreisSelect = document.querySelector('#kreisSelect'); const kreisSelect = document.querySelector('#kreisSelect');
@@ -42,7 +32,9 @@
kreisSelect.addEventListener( kreisSelect.addEventListener(
'change', 'change',
event => onKreisOptionSelected(kreisSelect, intensiveCareCapacitiesChartView, freeBedsChartView)); event => onKreisOptionSelected(kreisSelect, intensiveCareCapacitiesChartView, freeBedsChartView));
displayMedianOfFreeBedsByKreisChart(document.getElementById('medianOfFreeBedsByKreis')); displayMedianOfFreeBedsByKreisChart(
document.getElementById('medianOfFreeBedsByKreis'),
document.getElementById('slider'));
}); });
function onKreisOptionSelected(kreisSelect, intensiveCareCapacitiesChartView, freeBedsChartView) { function onKreisOptionSelected(kreisSelect, intensiveCareCapacitiesChartView, freeBedsChartView) {

View File

@@ -46,9 +46,32 @@ function add_median_free_beds_in_percent(dataDicts) {
} }
} }
function displayMedianOfFreeBedsByKreisChart(canvas) { function displayMedianOfFreeBedsByKreisChart(canvas, slider) {
const medianOfFreeBedsByKreisChartView = new MedianOfFreeBedsByKreisChartView(canvas);
fetch(`data/intensivstationen/medianOfFreeBedsByKreisTable.json`) fetch(`data/intensivstationen/medianOfFreeBedsByKreisTable.json`)
.then(response => response.json()) .then(response => response.json())
.then(json => medianOfFreeBedsByKreisChartView.displayChart(json)); .then(json => _displayMedianOfFreeBedsByKreisChart(canvas, slider, json));
}
function _displayMedianOfFreeBedsByKreisChart(canvas, sliderElement, data) {
const medianOfFreeBedsByKreisChartView = new MedianOfFreeBedsByKreisChartView(canvas);
medianOfFreeBedsByKreisChartView.displayChart(data);
createSlider(
sliderElement,
{
min: 0,
max: data.length - 1
},
values => medianOfFreeBedsByKreisChartView.setData(data.slice(values[0], values[1] + 1)));
}
function createSlider(sliderElement, range, onUpdate) {
noUiSlider.create(
sliderElement,
{
start: [range.min, range.max],
connect: true,
range: range,
step: 1,
});
sliderElement.noUiSlider.on('update', onUpdate);
} }

View File

@@ -21,6 +21,8 @@ FK-TODO:
- Intensivstationen ergänzen durch Tabelle oder Barchart: - Intensivstationen ergänzen durch Tabelle oder Barchart:
Kreis => "Median der Anteile freier Betten", absteigend sortiert nach "Median der Anteile freier Betten". Kreis => "Median der Anteile freier Betten", absteigend sortiert nach "Median der Anteile freier Betten".
- Darstellung als Dashboard, siehe https://covid-karte.de/ oder https://experience.arcgis.com/experience/3a132983ad3c4ab8a28704e9addefaba - Darstellung als Dashboard, siehe https://covid-karte.de/ oder https://experience.arcgis.com/experience/3a132983ad3c4ab8a28704e9addefaba
- Rot-Gelb-Grün eingefärbte Deutschland-Karte anzeigen wie in https://experience.arcgis.com/experience/3a132983ad3c4ab8a28704e9addefaba
- Alle Charts mit Slidern versehen.
man 5 fcrontab man 5 fcrontab