Fix issues with rider names. #466

This commit is contained in:
Korina Cordero 2020-08-14 09:01:27 +00:00
parent 9a444051e4
commit bf5a5c602f
4 changed files with 40 additions and 31 deletions

View file

@ -63,7 +63,7 @@ rider_ajax_avialable:
methods: [GET]
rider_ajax_rider_name:
path: /riders/rider_name
path: /riders/{id}/name
controller: App\Controller\RiderController::ajaxRiderName
methods: [GET]

View file

@ -303,35 +303,43 @@ class DashboardMap {
$.each(riders, function(id, data) {
var lat = data.latitude;
var lng = data.longitude;
var name = my.getRiderName(id);
var name = '';
if (data.has_jo)
my.putRiderActiveJOMarker(id, lat, lng, name);
else
my.putRiderAvailableMarker(id, lat, lng, 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)
});
}
});
// console.log(rider_markers);
});
}
getRiderName(rider_id) {
// check if rider id and name in rider_names
var name = '';
if (this.rider_names.hasOwnProperty(rider_id)) {
name = this.rider_names[rider_id];
} else {
// ajax call to get rider name
$.ajax({
method: "GET",
url: "{{ url('rider_ajax_rider_name')|raw }}",
data: {id: rider_id}
}).done(function(response) {
name = response.rider_name;
this.rider_names[rider_id] = name;
});
}
return name;
}
}
function getRiderName(id, url, callback) {
var name = '';
var rider_url = url.replace('[id]', id);
$.ajax({
method: "GET",
url: rider_url
}).done(function(response) {
name = response.rider_name;
callback(name);
});
}

View file

@ -616,11 +616,11 @@ class RiderController extends Controller
return $response;
}
public function ajaxRiderName(EntityManagerInterface $em, Request $req)
/**
* @ParamConverter("rider", class="App\Entity\Rider")
*/
public function ajaxRiderName(EntityManagerInterface $em, Rider $rider)
{
$rider_id = $req->query->get('id');
$rider = $em->getRepository(Rider::class)->find($rider_id);
$rider_name = '';
if ($rider != null)
$rider_name = $rider->getFullName();

View file

@ -35,7 +35,8 @@ function initMap(r_markers, c_markers, icons) {
'zoom': 13,
'rider_popup_url': '/riders/[id]/popup',
'cust_popup_url': '/job-order/[id]/popup',
'icons': icons
'icons': icons,
'rider_name_url': '/riders/[id]/name'
};
var dashmap = new DashboardMap(options, r_markers, c_markers);