diff --git a/config/routes/rider.yaml b/config/routes/rider.yaml index da41058d..1975e999 100644 --- a/config/routes/rider.yaml +++ b/config/routes/rider.yaml @@ -61,3 +61,9 @@ rider_ajax_avialable: path: /riders/{id}/available controller: App\Controller\RiderController::ajaxAvailable methods: [GET] + +rider_ajax_rider_name: + path: /riders/rider_name + controller: App\Controller\RiderController::ajaxRiderName + methods: [GET] + diff --git a/public/assets/js/dashboard_map.js b/public/assets/js/dashboard_map.js index c429ad79..5aa98996 100644 --- a/public/assets/js/dashboard_map.js +++ b/public/assets/js/dashboard_map.js @@ -4,6 +4,7 @@ class DashboardMap { this.rider_markers = rider_markers; this.cust_markers = cust_markers; this.rider_availability = {}; + this.rider_names = {}; // layer groups this.layer_groups = { @@ -302,7 +303,7 @@ class DashboardMap { $.each(riders, function(id, data) { var lat = data.latitude; var lng = data.longitude; - var name = ''; + var name = my.getRiderName(id); if (data.has_jo) my.putRiderActiveJOMarker(id, lat, lng, name); @@ -313,4 +314,24 @@ class DashboardMap { // 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; + } } diff --git a/public/assets/js/map_mqtt.js b/public/assets/js/map_mqtt.js index c3f4db0e..4e956ceb 100644 --- a/public/assets/js/map_mqtt.js +++ b/public/assets/js/map_mqtt.js @@ -12,7 +12,7 @@ class MapEventHandler { this.mqtt = new Paho.MQTT.Client(host, port, client_id); var options = { - useSSL: this.ssl, + //useSSL: this.ssl, timeout: 3, invocationContext: this, onSuccess: this.onConnect.bind(this), diff --git a/src/Controller/RiderController.php b/src/Controller/RiderController.php index 43f5d6d6..b398f18d 100644 --- a/src/Controller/RiderController.php +++ b/src/Controller/RiderController.php @@ -596,4 +596,38 @@ class RiderController extends Controller return $this->redirecttoRoute('rider_update', ['id' => $rider->getID()]); } + + /** + * @ParamConverter("rider", class="App\Entity\Rider") + */ + public function ajaxAvailable(EntityManagerInterface $em, Rider $rider) + { + $jo = $rider->getRiderActiveJobOrder(); + if ($jo == null || $jo->isClosed()) + $avail = 'available'; + else + $avail = 'unavailable'; + + $response = new Response( + $avail, + Response::HTTP_OK, + ['content-type' => 'text/plain'] + ); + return $response; + } + + public function ajaxRiderName(EntityManagerInterface $em, Request $req) + { + $rider_id = $req->query->get('id'); + + $rider = $em->getRepository(Rider::class)->find($rider_id); + $rider_name = ''; + if ($rider != null) + $rider_name = $rider->getFullName(); + + return $this->json([ + 'rider_name' => $rider_name, + ]); + } + }