49 lines
No EOL
1.3 KiB
JavaScript
49 lines
No EOL
1.3 KiB
JavaScript
import { fetchResults } from './api.js';
|
|
import { renderTable, clearTable } from './ui.js';
|
|
import { renderChart, clearChart } from './charts.js';
|
|
|
|
/**
|
|
* Aktualisiert die Darstellung basierend auf aktuellen Filterparametern.
|
|
* @param {Object} filters - Aktuelle Filtereinstellungen (run_type, time_range etc.)
|
|
*/
|
|
export async function refreshData(filters = {}) {
|
|
try {
|
|
clearTable();
|
|
clearChart();
|
|
|
|
const results = await fetchResults(filters);
|
|
|
|
if (!Array.isArray(results)) {
|
|
console.error('Unerwartetes Datenformat von /results');
|
|
return;
|
|
}
|
|
|
|
renderTable(results);
|
|
renderChart(results);
|
|
} catch (error) {
|
|
console.error('Fehler beim Laden der Analyseergebnisse:', error);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Initialisiert die Anwendung: Filter, Eventlistener und initialen Datenabruf.
|
|
*/
|
|
export function initApp() {
|
|
const filterRunType = document.getElementById('filter-run-type');
|
|
const filterTimeRange = document.getElementById('filter-time-range');
|
|
|
|
const handleFilterChange = async () => {
|
|
const filters = {
|
|
run_type: filterRunType?.value || '',
|
|
time_range: filterTimeRange?.value || ''
|
|
};
|
|
await refreshData(filters);
|
|
};
|
|
|
|
filterRunType?.addEventListener('change', handleFilterChange);
|
|
filterTimeRange?.addEventListener('change', handleFilterChange);
|
|
|
|
refreshData();
|
|
}
|
|
|
|
window.addEventListener('load', initApp); |