diff --git a/content/sv/status/index.md b/content/sv/status/index.md index 1642950..b4a8910 100644 --- a/content/sv/status/index.md +++ b/content/sv/status/index.md @@ -48,6 +48,16 @@ Kanalutnyttjande (Channel Utilization) visar hur mycket av radiokanalen som är +
+ + + + + + + + +
diff --git a/static/js/status/channel-utilization.js b/static/js/status/channel-utilization.js index d28cfc4..1af9fe6 100644 --- a/static/js/status/channel-utilization.js +++ b/static/js/status/channel-utilization.js @@ -1,7 +1,15 @@ -async function channelUtilizationHourlyAverage() { +let chUtilChart = null; + +async function channelUtilizationHourlyAverage(days = 7) { const canvas = document.getElementById('channelUtilizationChart'); const ctx = canvas.getContext('2d'); + // Destroy existing chart if any + if (chUtilChart) { + chUtilChart.destroy(); + chUtilChart = null; + } + // show loading ctx.font = '16px Arial'; ctx.fillStyle = 'gray'; @@ -9,8 +17,7 @@ async function channelUtilizationHourlyAverage() { ctx.fillText('Loading...', canvas.width/2, canvas.height/2); try { - // Fetch data for MediumFast over the last 7 days - const response = await fetch('https://map.sthlm-mesh.se/api/v1/stats/channel-utilization-stats?days=7&channel_id=MediumFast'); + const response = await fetch(`https://map.sthlm-mesh.se/api/v1/stats/channel-utilization-stats?days=${days}&channel_id=MediumFast`); const allData = await response.json(); // Single dataset containing all points @@ -32,7 +39,7 @@ async function channelUtilizationHourlyAverage() { fill: false, }); - new Chart(ctx, { + chUtilChart = new Chart(ctx, { type: 'line', data: { datasets: datasets @@ -95,4 +102,8 @@ async function channelUtilizationHourlyAverage() { } +document.querySelectorAll('input[name="chUtilPeriod"]').forEach(radio => { + radio.addEventListener('change', e => channelUtilizationHourlyAverage(e.target.value)); +}); + channelUtilizationHourlyAverage(); \ No newline at end of file