]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5805'
authorTom Hughes <tom@compton.nu>
Sun, 16 Mar 2025 14:56:55 +0000 (14:56 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 16 Mar 2025 14:56:55 +0000 (14:56 +0000)
1  2 
app/assets/javascripts/heatmap.js

index c557f96e39ced41f9fc6ad3555f1284f91a9a3e2,2958da3b88d99f9b65d475da722963a66cce334b..0670480d33dfe448e1ca3e9183b3be9d313b2899
@@@ -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"
          },
          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) {