From: Tom Hughes Date: Sun, 16 Mar 2025 14:56:55 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/5805' X-Git-Tag: live~2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/9bd29748be8e6770e276e93e54bb99c69d464498?hp=-c Merge remote-tracking branch 'upstream/pull/5805' --- 9bd29748be8e6770e276e93e54bb99c69d464498 diff --combined app/assets/javascripts/heatmap.js index c557f96e3,2958da3b8..0670480d3 --- a/app/assets/javascripts/heatmap.js +++ b/app/assets/javascripts/heatmap.js @@@ -12,6 -12,7 +12,7 @@@ document.addEventListener("DOMContentLo } const heatmapData = heatmapElement.dataset.heatmap ? JSON.parse(heatmapElement.dataset.heatmap) : []; + const displayName = heatmapElement.dataset.displayName; const colorScheme = document.documentElement.getAttribute("data-bs-theme") ?? "auto"; const rangeColors = ["#14432a", "#166b34", "#37a446", "#4dd05a"]; const startDate = new Date(Date.now() - (365 * 24 * 60 * 60 * 1000)); @@@ -33,7 -34,7 +34,7 @@@ type: "month", gutter: 4, label: { - text: (timestamp) => monthNames[new Date(timestamp).getMonth() + 1], + text: (timestamp) => monthNames[new Date(timestamp).getUTCMonth() + 1], position: "top", textAlign: "middle" }, @@@ -68,6 -69,20 +69,20 @@@ text: (date, value) => getTooltipText(date, value) }] ]); + + cal.on("mouseover", (event, _timestamp, value) => { + if (value) event.target.style.cursor = "pointer"; + }); + + cal.on("click", (_event, timestamp) => { + if (!displayName) return; + for (const { date, max_id } of heatmapData) { + if (!max_id) continue; + if (timestamp !== Date.parse(date)) continue; + const params = new URLSearchParams([["before", max_id + 1]]); + location = `/user/${encodeURIComponent(displayName)}/history?${params}`; + } + }); } function getTooltipText(date, value) {