Do not display marker for inactive rider #424

This commit is contained in:
Kendrick Chan 2020-07-16 14:50:36 +08:00
parent e79ae22f32
commit 2d292e1f9d
2 changed files with 14 additions and 0 deletions

View file

@ -3,6 +3,7 @@ class DashboardMap {
this.options = options; this.options = options;
this.rider_markers = rider_markers; this.rider_markers = rider_markers;
this.cust_markers = cust_markers; this.cust_markers = cust_markers;
this.rider_availability = {};
// layer groups // layer groups
this.layer_groups = { this.layer_groups = {

View file

@ -88,9 +88,11 @@ class MapEventHandler {
console.log("status " + status); console.log("status " + status);
switch (status) { switch (status) {
case 'rider_offline': case 'rider_offline':
this.dashmap.rider_availability[chan_split[1]] = false;
this.dashmap.removeRiderMarker(chan_split[1]); this.dashmap.removeRiderMarker(chan_split[1]);
break; break;
case 'rider_online': case 'rider_online':
this.dashmap.rider_availability[chan_split[1]] = true;
var lat = parseFloat(obj.latitude); var lat = parseFloat(obj.latitude);
var lng = parseFloat(obj.longitude); var lng = parseFloat(obj.longitude);
@ -102,10 +104,12 @@ class MapEventHandler {
switch (data) { switch (data) {
case 'available': case 'available':
console.log('putting available marker ' + chan_split[1] + ' ' + lat + ':' + lng); console.log('putting available marker ' + chan_split[1] + ' ' + lat + ':' + lng);
dashmap.switchRiderStatus(chan_split[1], 'available');
dashmap.putRiderAvailableMarker(chan_split[1], lat, lng); dashmap.putRiderAvailableMarker(chan_split[1], lat, lng);
break; break;
case 'unavailable': case 'unavailable':
console.log('putting active jo marker ' + chan_split[1] + ' ' + lat + ':' + lng); console.log('putting active jo marker ' + chan_split[1] + ' ' + lat + ':' + lng);
dashmap.switchRiderStatus(chan_split[1], 'jo');
dashmap.putRiderActiveJOMarker(chan_split[1], lat, lng); dashmap.putRiderActiveJOMarker(chan_split[1], lat, lng);
break; break;
} }
@ -125,7 +129,16 @@ class MapEventHandler {
var lat = parseFloat(pl_split[0]); var lat = parseFloat(pl_split[0]);
var lng = parseFloat(pl_split[1]); var lng = parseFloat(pl_split[1]);
var display_marker = true;
if (this.dashmap.rider_availability.hasOwnProperty(chan_split[1])) {
if (!this.dashmap.rider_availability) {
console.log('NOT displaying marker for inactive rider');
display_marker = false;
}
}
// TODO: cache rider availability status and check before displaying icon // TODO: cache rider availability status and check before displaying icon
// NOTE: code is already above, need to make it into a function and call it here
this.dashmap.putRiderAvailableMarker(chan_split[1], lat, lng); this.dashmap.putRiderAvailableMarker(chan_split[1], lat, lng);
break; break;
case "status": case "status":