From 0cb5706ed7cfdc66271129c94c6019f8ebd6b9e6 Mon Sep 17 00:00:00 2001 From: Alexis Fourmaux Date: Tue, 12 May 2026 19:51:50 +0200 Subject: [PATCH] fix: adapt chart period label according to granularity --- server/frontend/public/assets/js/chart.js | 18 +++++++++++++----- server/frontend/public/assets/js/main.js | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/server/frontend/public/assets/js/chart.js b/server/frontend/public/assets/js/chart.js index b5d33a0..2cb2a29 100644 --- a/server/frontend/public/assets/js/chart.js +++ b/server/frontend/public/assets/js/chart.js @@ -1,7 +1,7 @@ -function renderChart(points) { +function renderChart(points, granularity) { const canvas = document.getElementById("consumption-chart"); - const labels = points.map((p) => formatPeriod(p.period)); + const labels = points.map((p) => formatPeriod(p.period, granularity)); const data = points.map((p) => p.delta_m3); const style = getComputedStyle(document.documentElement); @@ -45,7 +45,15 @@ function renderChart(points) { return chart; } -function formatPeriod(isoString) { +const PERIOD_FORMATS = { + hour: { hour: "2-digit", minute: "2-digit", day: "2-digit", month: "short" }, + day: { day: "2-digit", month: "short" }, + week: { day: "2-digit", month: "short" }, + month: { month: "short", year: "numeric" }, +}; + +function formatPeriod(isoString, granularity) { const date = new Date(isoString); - return date.toLocaleDateString("fr-FR", { day: "2-digit", month: "short" }); -} + const opts = PERIOD_FORMATS[granularity] ?? PERIOD_FORMATS.day; + return date.toLocaleDateString("fr-FR", opts); +} \ No newline at end of file diff --git a/server/frontend/public/assets/js/main.js b/server/frontend/public/assets/js/main.js index 24e9537..db3ef94 100644 --- a/server/frontend/public/assets/js/main.js +++ b/server/frontend/public/assets/js/main.js @@ -27,7 +27,7 @@ async function loadData() { if (chart) { chart.destroy(); } - chart = renderChart(points); + chart = renderChart(points, granularity); updateKPIs(points); }