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

@@ -78,15 +78,19 @@ let symbolChanged=(newSymbol)=>{
$("#tbSymbol").text(getCurrentSymbol()); $("#tbSymbol").text(getCurrentSymbol());
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....
if (e.date !== undefined) { $("#datePicker").datepicker().on('changeDate', (e)=>{
console.log("DatePicker changed date",e.date); if (e.date !== undefined) {
filterContext.theDate=e.date.toISOString().substr(0,10); console.log("DatePicker changed date",e.date);
showTimesForDay(filterContext.theDate); filterContext.theDate=e.date.toISOString().substr(0,10);
} 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;