From ece4e6dd4d1ba0025032aeab50bb354835419ce5 Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 18 Jan 2020 22:45:40 +0800 Subject: [PATCH 01/10] Add MQTT subscribe functionality in main dashboard #299 --- templates/home.html.twig | 43 +++++++++++++++++++++++++----- templates/map/initOpenStreetMap.js | 2 ++ 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/templates/home.html.twig b/templates/home.html.twig index c6b95597..bd7f9746 100644 --- a/templates/home.html.twig +++ b/templates/home.html.twig @@ -10,13 +10,10 @@ {% endblock %} -{% block scripts %} -{{ include('map/' ~ map_js_file) }} - + {% endblock %} - diff --git a/templates/map/initOpenStreetMap.js b/templates/map/initOpenStreetMap.js index 59a8ebcf..a8917f2a 100644 --- a/templates/map/initOpenStreetMap.js +++ b/templates/map/initOpenStreetMap.js @@ -120,4 +120,6 @@ function mapCreate(div_id, center_lat, center_lng, map_type, zoom) { return map; } +initMap(); + From 425c235ca60ba756f8df2d92908b308905b1873a Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sat, 18 Jan 2020 22:46:42 +0800 Subject: [PATCH 02/10] Include kml directory in gitignore #299 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 90038562..bd8a680c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ /sql/ /pem/ /migration/ +/kml/ ###< symfony/framework-bundle ### *.swp From b435cdfa1bf6ebc456c044b4358f0efe8d82125f Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Sun, 19 Jan 2020 00:19:49 +0800 Subject: [PATCH 03/10] Fix bug in map script for dashboard #299 --- templates/home.html.twig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/home.html.twig b/templates/home.html.twig index bd7f9746..0e0c7bd6 100644 --- a/templates/home.html.twig +++ b/templates/home.html.twig @@ -21,9 +21,11 @@ function initMap() { var map = mapCreate('dashboard_map', default_lat, default_lng, 'road', 13); } + {{ include('map/' ~ map_js_file) }} + @@ -32,6 +34,13 @@ var timeout = 2000; var host = '{{ mqtt_host }}'; var port = {{ mqtt_port }}; +var icon_rider_available = L.divIcon({ + className: 'map-div-icon', + html: "
", + iconSize: [39, 42], + iconAnchor: [15, 42] +}); + function onConnect() { console.log('connected!'); @@ -54,6 +63,7 @@ function onMessage(msg) { } } + function handleRider(chan_split, payload) { console.log("rider message"); switch (chan_split[2]) { @@ -77,7 +87,10 @@ function handleRider(chan_split, payload) { // marker's there, move it rider_markers[chan_split[1]].setLatLng(L.latLng(lat, lng)); } else { - // TODO: no marker, make one + // no marker, make one + console.log('creating marker'); + // TODO: make it add to the correct map layer + rider_markers[chan_split[1]]= L.marker([lat, lng], { icon: icon_rider_available }).addTo(map);; } break; } From 68fd16e67ca4994226524d3b8c1eb40a6d0d752c Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Tue, 21 Jan 2020 22:08:12 +0800 Subject: [PATCH 08/10] Shift to CMB configuration #299 --- config/services.yaml | 12 ++++++------ translations/messages.en.yaml | 34 +++++++++++++++++----------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/config/services.yaml b/config/services.yaml index dd682462..1ea6a25e 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -155,22 +155,22 @@ services: App\Service\InvoiceGenerator\CMBInvoiceGenerator: ~ # invoice generator interface - #App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\CMBInvoiceGenerator" - App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\ResqInvoiceGenerator" + App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\CMBInvoiceGenerator" + #App\Service\InvoiceGeneratorInterface: "@App\\Service\\InvoiceGenerator\\ResqInvoiceGenerator" # job order generator App\Service\JobOrderHandler\CMBJobOrderHandler: ~ #job order generator interface - #App\Service\JobOrderHandlerInterface: "@App\\Service\\JobOrderHandler\\CMBJobOrderHandler" - App\Service\JobOrderHandlerInterface: "@App\\Service\\JobOrderHandler\\ResqJobOrderHandler" + App\Service\JobOrderHandlerInterface: "@App\\Service\\JobOrderHandler\\CMBJobOrderHandler" + #App\Service\JobOrderHandlerInterface: "@App\\Service\\JobOrderHandler\\ResqJobOrderHandler" # customer generator App\Service\CustomerHandler\CMBCustomerHandler: ~ # customer generator interface - #App\Service\CustomerHandlerInterface: "@App\\Service\\CustomerHandler\\CMBCustomerHandler" - App\Service\CustomerHandlerInterface: "@App\\Service\\CustomerHandler\\ResqCustomerHandler" + App\Service\CustomerHandlerInterface: "@App\\Service\\CustomerHandler\\CMBCustomerHandler" + #App\Service\CustomerHandlerInterface: "@App\\Service\\CustomerHandler\\ResqCustomerHandler" # rider assignment App\Service\RiderAssignmentHandler\CMBRiderAssignmentHandler: ~ diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml index c0fb8ca1..7856b0c8 100644 --- a/translations/messages.en.yaml +++ b/translations/messages.en.yaml @@ -1,27 +1,27 @@ # text -title_login: Motolite Res-Q | Login -block_title: Motolite Res-Q +title_login: Res-Q for CMB | Login +block_title: Res-Q for CMB control_panel_sign_in: Sign-in to Control Panel -alt_image_logo_login: Res-Q -alt_image_dashboard: Motolite -copyright: Motolite Res-Q +alt_image_logo_login: Res-Q for CMB +alt_image_dashboard: Res-Q for CMB +copyright: Res-Q for CMB battery_size_tradein_brand: Trade-in Motolite battery_size_tradein_premium: Trade-in Premium battery_size_tradein_other: Trade-in Other add_cust_vehicle_battery_info: This vehicle is using a Motolite battery -jo_title_pdf: Motolite Res-Q Job Order -country_code_prefix: '+63' -delivery_instructions_label: Delivery Instructions +jo_title_pdf: Res-Q for CMB Job Order +country_code_prefix: '+60' +delivery_instructions_label: 'Delivery Instructions - CarFix Job Order No.' # images -image_logo_login: /assets/images/logo-resq.png -icon_login: /assets/demo/default/media/img/logo/favicon.ico -icon_base_32x32: /assets/images/favicon/favicon-32x32.png -icon_base_16x16: /assets/images/favicon/favicon-16x16.png -image_dashboard: /assets/images/logo-motolite.png -image_jo_pdf: /public/assets/images/logo-resq.png +image_logo_login: /assets/images/black-text-logo-01.png +icon_login: /assets/images/battery-assist-bm-logo-32x32.png +icon_base_32x32: /assets/images/black-text-logo-01-32x32.png +icon_base_16x16: /assets/images/black-text-logo-01-16x16.png +image_dashboard: /assets/images/century_logo.png +image_jo_pdf: /public/assets/images/black-text-logo-01-115x115.png # default point for maps -default_lat: 14.6091 -default_long: 121.0223 -default_region: ph +default_lat: 3.084216 +default_long: 101.6129996 +default_region: my From eac8f41d8438497099f2400fafacd63686104b5e Mon Sep 17 00:00:00 2001 From: Kendrick Chan Date: Wed, 22 Jan 2020 04:03:25 +0800 Subject: [PATCH 09/10] Make rider markers load popup via ajax #299 --- config/routes/rider.yaml | 5 +++++ src/Controller/HomeController.php | 2 ++ src/Controller/RiderController.php | 10 ++++++++++ templates/home.html.twig | 4 +++- templates/map/initOpenStreetMap.js | 25 +++++++++++++++++++------ templates/rider/popup.html.twig | 13 +++++++++++++ translations/messages.en.yaml | 6 ++++-- 7 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 templates/rider/popup.html.twig diff --git a/config/routes/rider.yaml b/config/routes/rider.yaml index 61a4522e..70ddd91d 100644 --- a/config/routes/rider.yaml +++ b/config/routes/rider.yaml @@ -36,3 +36,8 @@ rider_delete: path: /riders/{id} controller: App\Controller\RiderController::destroy methods: [DELETE] + +rider_ajax_popup: + path: /riders/{id}/popup + controller: App\Controller\RiderController::popupInfo + methods: [GET] diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index d678c95d..3a3e5173 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -29,6 +29,8 @@ class HomeController extends Controller public function getRiderLocations(EntityManagerInterface $em, RiderTracker $rider_tracker) { + // TODO: get active riders from cache + // TODO: get active JOs from cache // get all riders $riders = $em->getRepository(Rider::class)->findAll(); diff --git a/src/Controller/RiderController.php b/src/Controller/RiderController.php index a62eebd1..838b558b 100644 --- a/src/Controller/RiderController.php +++ b/src/Controller/RiderController.php @@ -10,6 +10,7 @@ use App\Entity\User; use App\Service\FileUploader; use Doctrine\ORM\Query; +use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; @@ -500,4 +501,13 @@ class RiderController extends Controller ->setParameter('filter', '%' . $datatable['query']['data-rows-search'] . '%'); } } + + public function popupInfo(EntityManagerInterface $em, $id) + { + $rider = $em->getRepository(Rider::class)->find($id); + if ($rider == null) + return new Response('No rider data'); + + return $this->render('rider/popup.html.twig', [ 'rider' => $rider ]); + } } diff --git a/templates/home.html.twig b/templates/home.html.twig index 8f337c03..88ae8aa2 100644 --- a/templates/home.html.twig +++ b/templates/home.html.twig @@ -21,12 +21,14 @@ function initMap() { var default_lat = {% trans %}default_lat{% endtrans %}; var default_lng = {% trans %}default_long{% endtrans %}; - map = mapCreate('dashboard_map', default_lat, default_lng, 'road', 13); + var rider_popup_url = '/riders/[id]/popup'; + map = mapCreate('dashboard_map', default_lat, default_lng, 'road', 13, rider_popup_url); } {{ include('map/' ~ map_js_file) }} + diff --git a/templates/job-order/popup.html.twig b/templates/job-order/popup.html.twig new file mode 100644 index 00000000..509c7296 --- /dev/null +++ b/templates/job-order/popup.html.twig @@ -0,0 +1,8 @@ +{% set cust = jo.getCustomer %} +{% set cv = jo.getCustomerVehicle %} +{{ cust.getNameDisplay }}
+{{ cv.getPlateNumber }}
+Job Order #{{ jo.getID }}
+{{ jo.getServiceTypeName }}
+{{ jo.getStatusText }} + diff --git a/templates/map/initOpenStreetMap.js b/templates/map/initOpenStreetMap.js index 469fffa3..358b91d4 100644 --- a/templates/map/initOpenStreetMap.js +++ b/templates/map/initOpenStreetMap.js @@ -6,8 +6,9 @@