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