Fix getting rider name for rider markers #472

This commit is contained in:
Kendrick Chan 2020-08-21 17:04:30 +08:00
parent a2245fef2b
commit 78554ec9c6

View file

@ -231,30 +231,38 @@ class DashboardMap {
); );
} }
putRiderAvailableMarker(id, lat, lng, name) { putRiderAvailableMarker(id, lat, lng) {
this.putMarkerWithLabel( var my = this;
id,
lat, my.getRiderName(id, function(name) {
lng, my.putMarkerWithLabel(
this.rider_markers, id,
this.options.icons.rider_available, lat,
this.layer_groups.rider_available, lng,
this.options.rider_popup_url, my.rider_markers,
name my.options.icons.rider_available,
); my.layer_groups.rider_available,
my.options.rider_popup_url,
name
);
});
} }
putRiderActiveJOMarker(id, lat, lng, name) { putRiderActiveJOMarker(id, lat, lng) {
this.putMarkerWithLabel( var my = this;
id,
lat, my.getRiderName(id, function(name) {
lng, my.putMarkerWithLabel(
this.rider_markers, id,
this.options.icons.rider_active_jo, lat,
this.layer_groups.rider_active_jo, lng,
this.options.rider_popup_url, my.rider_markers,
name my.options.icons.rider_active_jo,
); my.layer_groups.rider_active_jo,
my.options.rider_popup_url,
name
);
});
} }
removeRiderMarker(id) { removeRiderMarker(id) {
@ -305,41 +313,38 @@ class DashboardMap {
var lng = data.longitude; var lng = data.longitude;
var name = ''; var name = '';
if (my.rider_names.hasOwnProperty(id)) { if (data.has_jo)
name = my.rider_names[id]; my.putRiderActiveJOMarker(id, lat, lng);
else
if (data.has_jo) my.putRiderAvailableMarker(id, lat, lng);
my.putRiderActiveJOMarker(id, lat, lng, name);
else
my.putRiderAvailableMarker(id, lat, lng, name)
} else {
getRiderName(id, my.options.rider_name_url, function(name) {
my.rider_names[id] = name;
if (data.has_jo)
my.putRiderActiveJOMarker(id, lat, lng, name);
else
my.putRiderAvailableMarker(id, lat, lng, name)
});
}
}); });
// console.log(rider_markers); // console.log(rider_markers);
}); });
} }
}
function getRiderName(id, url, callback) { getRiderName(id, callback) {
var name = ''; var name = '';
var rider_url = url.replace('[id]', id); var rider_url = this.options.rider_name_url.replace('[id]', id);
$.ajax({ var my = this;
method: "GET",
url: rider_url console.log('getting rider name for rider ' + id);
}).done(function(response) {
name = response.rider_name; // check if we have it in cache
callback(name); if (this.rider_names.hasOwnProperty(id)) {
}); name = this.rider_names[id];
callback(name);
}
// ajax call to get it
$.ajax({
method: "GET",
url: rider_url
}).done(function(response) {
name = response.rider_name;
my.rider_names[id] = name;
callback(name);
});
}
} }