diff options
Diffstat (limited to 'web_src')
-rw-r--r-- | web_src/js/components/ActivityHeatmap.vue | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/web_src/js/components/ActivityHeatmap.vue b/web_src/js/components/ActivityHeatmap.vue index 7eb129d139..63e38ea69e 100644 --- a/web_src/js/components/ActivityHeatmap.vue +++ b/web_src/js/components/ActivityHeatmap.vue @@ -10,6 +10,7 @@ :end-date="endDate" :values="values" :range-color="colorRange" + @day-click="handleDayClick($event)" /> </div> </template> @@ -48,7 +49,25 @@ export default { } return s; } - } + }, + methods: { + handleDayClick(e) { + // Reset filter if same date is clicked + const params = new URLSearchParams(document.location.search); + const queryDate = params.get('date'); + // Timezone has to be stripped because toISOString() converts to UTC + const clickedDate = new Date(e.date - (e.date.getTimezoneOffset() * 60000)).toISOString().substring(0, 10); + + if (queryDate && queryDate === clickedDate) { + params.delete('date'); + } else { + params.set('date', clickedDate); + } + + const newSearch = params.toString(); + window.location.search = newSearch.length ? `?${newSearch}` : ''; + } + }, }; </script> <style scoped/> |