adding slider4freeBeds
This commit is contained in:
@@ -48,6 +48,12 @@ class FreeBedsChartView {
|
|||||||
return { beforeDraw: drawTrafficLights };
|
return { beforeDraw: drawTrafficLights };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setData(data) {
|
||||||
|
this.#chart.config.data.datasets[0].data = data;
|
||||||
|
this.#chart.config.data.datasets[1].data = data;
|
||||||
|
this.#chart.update();
|
||||||
|
}
|
||||||
|
|
||||||
#getData(data, label) {
|
#getData(data, label) {
|
||||||
return {
|
return {
|
||||||
datasets: [
|
datasets: [
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
displayFreeBedsChart(
|
displayFreeBedsChart(
|
||||||
{
|
{
|
||||||
freeBedsChartView: freeBedsChartView,
|
freeBedsChartView: freeBedsChartView,
|
||||||
|
sliderElement: document.getElementById('slider4freeBeds'),
|
||||||
kreisText: selectedOption.text,
|
kreisText: selectedOption.text,
|
||||||
kreisValue: selectedOption.value
|
kreisValue: selectedOption.value
|
||||||
});
|
});
|
||||||
@@ -524,6 +525,7 @@
|
|||||||
<option value="Zwickau">Zwickau</option>
|
<option value="Zwickau">Zwickau</option>
|
||||||
</select>
|
</select>
|
||||||
<canvas id="freeBeds"></canvas>
|
<canvas id="freeBeds"></canvas>
|
||||||
|
<div id="slider4freeBeds"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,31 +4,47 @@ function displayIntensiveCareCapacitiesChart(
|
|||||||
headingElement.textContent = kreisText
|
headingElement.textContent = kreisText
|
||||||
fetch(`data/intensivstationen/intensivstationen-${kreisValue}.json`)
|
fetch(`data/intensivstationen/intensivstationen-${kreisValue}.json`)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(json => {
|
.then(json => _displayIntensiveCareCapacitiesChart({ intensiveCareCapacitiesChartView, sliderElement, populationElement, kreisText, json }));
|
||||||
populationElement.textContent = new Intl.NumberFormat().format(json.population);
|
}
|
||||||
intensiveCareCapacitiesChartView.displayChart({ data: json.data, title: kreisText });
|
|
||||||
createSlider(
|
function _displayIntensiveCareCapacitiesChart({ intensiveCareCapacitiesChartView, sliderElement, populationElement, kreisText, json }) {
|
||||||
{
|
populationElement.textContent = new Intl.NumberFormat().format(json.population);
|
||||||
sliderElement: sliderElement,
|
intensiveCareCapacitiesChartView.displayChart({ data: json.data, title: kreisText });
|
||||||
range: {
|
createSlider(
|
||||||
min: 0,
|
{
|
||||||
max: json.data.length - 1
|
sliderElement: sliderElement,
|
||||||
},
|
range: {
|
||||||
orientation: 'horizontal',
|
min: 0,
|
||||||
onUpdate: ([start, end]) => intensiveCareCapacitiesChartView.setData(json.data.slice(start, end + 1))
|
max: json.data.length - 1
|
||||||
});
|
},
|
||||||
|
orientation: 'horizontal',
|
||||||
|
onUpdate: ([start, end]) => intensiveCareCapacitiesChartView.setData(json.data.slice(start, end + 1))
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayFreeBedsChart({ freeBedsChartView, kreisText, kreisValue }) {
|
function displayFreeBedsChart({ freeBedsChartView, sliderElement, kreisText, kreisValue }) {
|
||||||
fetch(`data/intensivstationen/intensivstationen-${kreisValue}.json`)
|
fetch(`data/intensivstationen/intensivstationen-${kreisValue}.json`)
|
||||||
.then(response => response.json())
|
.then(response => response.json())
|
||||||
.then(json =>
|
.then(json => _displayFreeBedsChart({ freeBedsChartView, sliderElement, kreisText, json }));
|
||||||
freeBedsChartView.displayChart(
|
}
|
||||||
{
|
|
||||||
data: getDataDicts(json.data),
|
function _displayFreeBedsChart({ freeBedsChartView, sliderElement, kreisText, json }) {
|
||||||
title: kreisText
|
const data = getDataDicts(json.data);
|
||||||
}));
|
freeBedsChartView.displayChart(
|
||||||
|
{
|
||||||
|
data: data,
|
||||||
|
title: kreisText
|
||||||
|
});
|
||||||
|
createSlider(
|
||||||
|
{
|
||||||
|
sliderElement: sliderElement,
|
||||||
|
range: {
|
||||||
|
min: 0,
|
||||||
|
max: data.length - 1
|
||||||
|
},
|
||||||
|
orientation: 'horizontal',
|
||||||
|
onUpdate: ([start, end]) => freeBedsChartView.setData(data.slice(start, end + 1))
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDataDicts(data) {
|
function getDataDicts(data) {
|
||||||
@@ -79,6 +95,9 @@ function _displayMedianOfFreeBedsByKreisChart(canvas, sliderElement, data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function createSlider({ sliderElement, range, orientation, height = null, onUpdate }) {
|
function createSlider({ sliderElement, range, orientation, height = null, onUpdate }) {
|
||||||
|
if ('noUiSlider' in sliderElement) {
|
||||||
|
sliderElement.noUiSlider.destroy();
|
||||||
|
}
|
||||||
noUiSlider.create(
|
noUiSlider.create(
|
||||||
sliderElement,
|
sliderElement,
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user