From ba81c0734520507f5020ba4a803036260c0faffb Mon Sep 17 00:00:00 2001 From: Daste Date: Sat, 5 Nov 2022 19:23:30 +0100 Subject: [PATCH] Display persistent summary interval into the front-end time picker --- static/assets/js/components/summary.js | 11 +++++++++-- static/assets/js/components/time-picker.js | 12 ++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/static/assets/js/components/summary.js b/static/assets/js/components/summary.js index fff253d..16b69d2 100644 --- a/static/assets/js/components/summary.js +++ b/static/assets/js/components/summary.js @@ -2,8 +2,15 @@ PetiteVue.createApp({ $delimiters: ['${', '}'], get currentInterval() { const urlParams = new URLSearchParams(window.location.search) - if (urlParams.has('interval')) return urlParams.get('interval') - if (!urlParams.has('from') && !urlParams.has('to')) return 'today' + const cookies = new URLSearchParams(document.cookie.replaceAll('; ', '&')) + + if (urlParams.has('interval')) + return urlParams.get('interval') + if (cookies.has('wakapi_summary_interval')) + return cookies.get('wakapi_summary_interval') + if (!urlParams.has('from') && !urlParams.has('to')) + return 'today' + return null } }).mount('#summary-page') \ No newline at end of file diff --git a/static/assets/js/components/time-picker.js b/static/assets/js/components/time-picker.js index fcc515d..5bfe821 100644 --- a/static/assets/js/components/time-picker.js +++ b/static/assets/js/components/time-picker.js @@ -23,8 +23,16 @@ function TimePicker({ fromDate, toDate, timeSelection }) { }) const query = new URLSearchParams(window.location.search) - if (query.has('interval')) { - const refEl = document.getElementById(`time-option-${query.get('interval')}`) + const cookies = new URLSearchParams(document.cookie.replaceAll('; ', '&')) + + let interval = undefined; + if (query.has('interval')) + interval = query.get('interval') + else if (cookies.has('wakapi_summary_interval')) + interval = cookies.get('wakapi_summary_interval') + + if (interval) { + const refEl = document.getElementById(`time-option-${interval}`) this.timeSelection = refEl ? refEl.innerText : 'Unknown' } }