@@ -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
128135function handleAjaxError ( xhr , textStatus ) {
0 commit comments