Files
HowBadIsMyBatch/docs/HistogramView.js
2023-01-28 23:22:25 +01:00

48 lines
1.4 KiB
JavaScript

class HistogramView {
#uiContainer;
constructor(uiContainer) {
this.#uiContainer = uiContainer
}
displayHistogramsForBatchcode(batchcode) {
this
.#loadHistoDescrsForBatchcode(batchcode)
.then(histoDescrs => this.#displayHistograms(histoDescrs));
}
#loadHistoDescrsForBatchcode(batchcode) {
const loadingText = document.createTextNode('Loading...');
this.#uiContainer.appendChild(loadingText);
return fetch(`data/histograms/${batchcode}.json`)
.then(response => {
loadingText.remove();
return response.json();
})
}
#displayHistograms(histoDescrs) {
this.#uiContainer.appendChild(document.createTextNode(histoDescrs.batchcode));
for (const histoDescr of histoDescrs.histograms) {
this.#uiContainer.appendChild(this.#createHistogram(histoDescr).canvas);
}
}
#createHistogram(histoDescr) {
// FK-TODO: brauchen Slider wie bei intensivstationen
const canvas = document.createElement("canvas");
return new Chart(
canvas,
{
type: 'bar',
data: {
datasets: [{
label: histoDescr.batchcodes.join(', '),
data: histoDescr.histogram
}]
}
}
);
}
}