Fix multiple execution of on-date-change event handler causing duplication of requests after changing symbol

This commit is contained in:
Joe Tretter
2020-04-28 18:46:31 -05:00
parent 000dce422c
commit bd726a01c7

View File

@@ -79,14 +79,18 @@ let symbolChanged=(newSymbol)=>{
getAvailDatesForSymbol(getCurrentSymbol()).done(_=>{ getAvailDatesForSymbol(getCurrentSymbol()).done(_=>{
$("#datePicker").datepicker('destroy'); $("#datePicker").datepicker('destroy');
$("#datePicker").datepicker({beforeShowDay:beforeShowDay}) $("#datePicker").datepicker({beforeShowDay:beforeShowDay});
.on('changeDate', (e)=>{ if (document.getElementById("datePicker").hasHandler !== true) { // work around multiple binding of the eventhandler - it seems that destroy doesn't remove the old handler....
$("#datePicker").datepicker().on('changeDate', (e)=>{
if (e.date !== undefined) { if (e.date !== undefined) {
console.log("DatePicker changed date",e.date); console.log("DatePicker changed date",e.date);
filterContext.theDate=e.date.toISOString().substr(0,10); filterContext.theDate=e.date.toISOString().substr(0,10);
showTimesForDay(filterContext.theDate); showTimesForDay(filterContext.theDate);
} }
}); });
document.getElementById("datePicker").hasHandler= true;
}
if (filterContext.theDate === undefined) { if (filterContext.theDate === undefined) {
console.log("no date in contest, setting date to the last in chain."); console.log("no date in contest, setting date to the last in chain.");
filterContext.theDate=filterContext.availableDates[filterContext.availableDates.length-1].Date; filterContext.theDate=filterContext.availableDates[filterContext.availableDates.length-1].Date;