Skip to content

Commit b66d8a9

Browse files
authored
Update daterangepicker ranges everytime the picker is shown (#3793)
2 parents df2b778 + 705fbd9 commit b66d8a9

1 file changed

Lines changed: 28 additions & 21 deletions

File tree

scripts/js/queries.js

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -80,35 +80,35 @@ function initDateRangePicker(data) {
8080

8181
const minDateMoment = moment.unix(beginningOfTime);
8282
const maxDateMoment = moment.unix(endOfTime);
83-
const earliestDateStr = minDateMoment.format(dateformat);
84-
$("#querytime-note").text(`Earliest date: ${earliestDateStr}`);
83+
const buildRanges = () => ({
84+
"Last 10 Minutes": [moment().subtract(10, "minutes"), moment()],
85+
"Last Hour": [moment().subtract(1, "hours"), moment()],
86+
Today: [moment().startOf("day"), maxDateMoment],
87+
Yesterday: [
88+
moment().subtract(1, "days").startOf("day"),
89+
moment().subtract(1, "days").endOf("day"),
90+
],
91+
"Last 7 Days": [moment().subtract(6, "days").startOf("day"), maxDateMoment],
92+
"Last 30 Days": [moment().subtract(29, "days").startOf("day"), maxDateMoment],
93+
"This Month": [moment().startOf("month"), maxDateMoment],
94+
"Last Month": [
95+
moment().subtract(1, "month").startOf("month"),
96+
moment().subtract(1, "month").endOf("month"),
97+
],
98+
"This Year": [moment().startOf("year"), maxDateMoment],
99+
"All Time": [minDateMoment, maxDateMoment],
100+
});
85101

86-
$("#querytime").daterangepicker(
102+
const querytime = $("#querytime");
103+
querytime.daterangepicker(
87104
{
88105
timePicker: true,
89106
timePickerIncrement: 5,
90107
timePicker24Hour: true,
91108
locale: { format: dateformat },
92109
startDate: moment(from * 1000), // convert to milliseconds since epoch
93110
endDate: moment(until * 1000), // convert to milliseconds since epoch
94-
ranges: {
95-
"Last 10 Minutes": [moment().subtract(10, "minutes"), moment()],
96-
"Last Hour": [moment().subtract(1, "hours"), moment()],
97-
Today: [moment().startOf("day"), maxDateMoment],
98-
Yesterday: [
99-
moment().subtract(1, "days").startOf("day"),
100-
moment().subtract(1, "days").endOf("day"),
101-
],
102-
"Last 7 Days": [moment().subtract(6, "days").startOf("day"), maxDateMoment],
103-
"Last 30 Days": [moment().subtract(29, "days").startOf("day"), maxDateMoment],
104-
"This Month": [moment().startOf("month"), maxDateMoment],
105-
"Last Month": [
106-
moment().subtract(1, "month").startOf("month"),
107-
moment().subtract(1, "month").endOf("month"),
108-
],
109-
"This Year": [moment().startOf("year"), maxDateMoment],
110-
"All Time": [minDateMoment, maxDateMoment],
111-
},
111+
ranges: buildRanges(),
112112
// Don't allow selecting dates outside the database range
113113
minDate: minDateMoment,
114114
maxDate: maxDateMoment,
@@ -123,6 +123,13 @@ function initDateRangePicker(data) {
123123
until = moment(endt).utc().valueOf() / 1000;
124124
}
125125
);
126+
127+
querytime.on("show.daterangepicker", (_, picker) => {
128+
// Refresh relative ranges so options like "Last 10 Minutes" are based on now.
129+
picker.ranges = buildRanges();
130+
picker.updateView();
131+
picker.updateCalendars();
132+
});
126133
}
127134

128135
function handleAjaxError(xhr, textStatus) {

0 commit comments

Comments
 (0)