diff --git a/trace_visualization/js/ui.js b/trace_visualization/js/ui.js new file mode 100644 index 0000000..fb089f9 --- /dev/null +++ b/trace_visualization/js/ui.js @@ -0,0 +1,66 @@ +export function updateStatsPanel(analysisResults = {}) { + const statsContainer = document.getElementById('stats-summary'); + if (!statsContainer) { + console.warn('Stats summary container missing (#stats-summary)'); + return; + } + + if (!analysisResults || !Array.isArray(analysisResults.runs)) { + statsContainer.textContent = 'Keine Analysedaten vorhanden.'; + return; + } + + const totalRuns = analysisResults.runs.length; + if (totalRuns === 0) { + statsContainer.textContent = 'Keine Analysedaten verfügbar.'; + return; + } + + const medianAvg = ( + analysisResults.runs.reduce((sum, r) => sum + (r.median_shift || 0), 0) / totalRuns + ).toFixed(2); + + const varianceAvg = ( + analysisResults.runs.reduce((sum, r) => sum + (r.variance || 0), 0) / totalRuns + ).toFixed(2); + + const migratedAvg = ( + analysisResults.runs.reduce((sum, r) => sum + (r.migrated_ratio || 0), 0) / totalRuns + ).toFixed(2); + + const offsetAvg = ( + analysisResults.runs.reduce((sum, r) => sum + (r.offset_constant || 0), 0) / totalRuns + ).toFixed(2); + + const strongDeviations = analysisResults.runs.filter(r => (r.variance || 0) > 1.5).length; + + const summaryHTML = ` +