From 1e6ed4c8289b330f59ea59f793b29a9735500484 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:05:12 +0000 Subject: [PATCH 1/3] Initial plan for issue From ededda30112a617befe84cf698859f2cef72d4fa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:12:44 +0000 Subject: [PATCH 2/3] Fix 12-hour time format issue in graphs by implementing custom 24-hour formatter Co-authored-by: abh <16861+abh@users.noreply.github.com> --- docs/shared/static/js/graphs.server.js | 24 +++++++++++++++++++++++- docs/shared/static/js/graphs.zone.js | 24 +++++++++++++++++++++++- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/docs/shared/static/js/graphs.server.js b/docs/shared/static/js/graphs.server.js index f4c5c11f1..10ab3b19d 100644 --- a/docs/shared/static/js/graphs.server.js +++ b/docs/shared/static/js/graphs.server.js @@ -62,12 +62,34 @@ function server_chart(div, data, options) { .attr("y1", 0) .attr("y2", h); + // Custom 24-hour time formatter to avoid 12-hour format in minute displays + function custom24HourFormatter() { + const formatMillisecond = d3.utcFormat(".%L"), + formatSecond = d3.utcFormat(":%S"), + formatMinute = d3.utcFormat("%H:%M"), // Always use 24-hour format + formatHour = d3.utcFormat("%H"), // Always use 24-hour format + formatDay = d3.utcFormat("%a %d"), + formatWeek = d3.utcFormat("%b %d"), + formatMonth = d3.utcFormat("%B"), + formatYear = d3.utcFormat("%Y"); + + return function(date) { + return (d3.utcSecond(date) < date ? formatMillisecond + : d3.utcMinute(date) < date ? formatSecond + : d3.utcHour(date) < date ? formatMinute + : d3.utcDay(date) < date ? formatHour + : d3.utcMonth(date) < date ? (d3.utcWeek(date) < date ? formatDay : formatWeek) + : d3.utcYear(date) < date ? formatMonth + : formatYear)(date); + }; + } + xrule.append("text") .attr("x", x) .attr("y", h + 3) .attr("dy", ".71em") .attr("text-anchor", "middle") - .text(x.tickFormat(xticks)); + .text(custom24HourFormatter()); /* offset y lines */ var yrule = svg.selectAll("g.y") diff --git a/docs/shared/static/js/graphs.zone.js b/docs/shared/static/js/graphs.zone.js index c88f903ab..8bc7c3918 100644 --- a/docs/shared/static/js/graphs.zone.js +++ b/docs/shared/static/js/graphs.zone.js @@ -57,12 +57,34 @@ function zone_chart(div, data, options) { .attr("y1", 0) .attr("y2", h); + // Custom 24-hour time formatter to avoid 12-hour format in minute displays + function custom24HourFormatter() { + const formatMillisecond = d3.utcFormat(".%L"), + formatSecond = d3.utcFormat(":%S"), + formatMinute = d3.utcFormat("%H:%M"), // Always use 24-hour format + formatHour = d3.utcFormat("%H"), // Always use 24-hour format + formatDay = d3.utcFormat("%a %d"), + formatWeek = d3.utcFormat("%b %d"), + formatMonth = d3.utcFormat("%B"), + formatYear = d3.utcFormat("%Y"); + + return function(date) { + return (d3.utcSecond(date) < date ? formatMillisecond + : d3.utcMinute(date) < date ? formatSecond + : d3.utcHour(date) < date ? formatMinute + : d3.utcDay(date) < date ? formatHour + : d3.utcMonth(date) < date ? (d3.utcWeek(date) < date ? formatDay : formatWeek) + : d3.utcYear(date) < date ? formatMonth + : formatYear)(date); + }; + } + xrule.append("text") .attr("x", x) .attr("y", h + 3) .attr("dy", ".71em") .attr("text-anchor", "middle") - .text(x.tickFormat(10)); + .text(custom24HourFormatter()); /* offset y lines */ var y_ticks = y_max > 8 ? 8 : y_max; From 3da5c132fb7e1aaeccff19954e90e635318c621e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:15:46 +0000 Subject: [PATCH 3/3] Update time formatter to ES5-compatible syntax for older browser support Co-authored-by: abh <16861+abh@users.noreply.github.com> --- docs/shared/static/js/graphs.server.js | 16 ++++++++-------- docs/shared/static/js/graphs.zone.js | 16 ++++++++-------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/shared/static/js/graphs.server.js b/docs/shared/static/js/graphs.server.js index 10ab3b19d..545ec1bac 100644 --- a/docs/shared/static/js/graphs.server.js +++ b/docs/shared/static/js/graphs.server.js @@ -64,14 +64,14 @@ function server_chart(div, data, options) { // Custom 24-hour time formatter to avoid 12-hour format in minute displays function custom24HourFormatter() { - const formatMillisecond = d3.utcFormat(".%L"), - formatSecond = d3.utcFormat(":%S"), - formatMinute = d3.utcFormat("%H:%M"), // Always use 24-hour format - formatHour = d3.utcFormat("%H"), // Always use 24-hour format - formatDay = d3.utcFormat("%a %d"), - formatWeek = d3.utcFormat("%b %d"), - formatMonth = d3.utcFormat("%B"), - formatYear = d3.utcFormat("%Y"); + var formatMillisecond = d3.utcFormat(".%L"), + formatSecond = d3.utcFormat(":%S"), + formatMinute = d3.utcFormat("%H:%M"), // Always use 24-hour format + formatHour = d3.utcFormat("%H"), // Always use 24-hour format + formatDay = d3.utcFormat("%a %d"), + formatWeek = d3.utcFormat("%b %d"), + formatMonth = d3.utcFormat("%B"), + formatYear = d3.utcFormat("%Y"); return function(date) { return (d3.utcSecond(date) < date ? formatMillisecond diff --git a/docs/shared/static/js/graphs.zone.js b/docs/shared/static/js/graphs.zone.js index 8bc7c3918..a7454db6e 100644 --- a/docs/shared/static/js/graphs.zone.js +++ b/docs/shared/static/js/graphs.zone.js @@ -59,14 +59,14 @@ function zone_chart(div, data, options) { // Custom 24-hour time formatter to avoid 12-hour format in minute displays function custom24HourFormatter() { - const formatMillisecond = d3.utcFormat(".%L"), - formatSecond = d3.utcFormat(":%S"), - formatMinute = d3.utcFormat("%H:%M"), // Always use 24-hour format - formatHour = d3.utcFormat("%H"), // Always use 24-hour format - formatDay = d3.utcFormat("%a %d"), - formatWeek = d3.utcFormat("%b %d"), - formatMonth = d3.utcFormat("%B"), - formatYear = d3.utcFormat("%Y"); + var formatMillisecond = d3.utcFormat(".%L"), + formatSecond = d3.utcFormat(":%S"), + formatMinute = d3.utcFormat("%H:%M"), // Always use 24-hour format + formatHour = d3.utcFormat("%H"), // Always use 24-hour format + formatDay = d3.utcFormat("%a %d"), + formatWeek = d3.utcFormat("%b %d"), + formatMonth = d3.utcFormat("%B"), + formatYear = d3.utcFormat("%Y"); return function(date) { return (d3.utcSecond(date) < date ? formatMillisecond