diff --git a/config/routes/job_order.yaml b/config/routes/job_order.yaml
index be379be8..139b208f 100644
--- a/config/routes/job_order.yaml
+++ b/config/routes/job_order.yaml
@@ -195,3 +195,9 @@ jo_onestep_edit_submit:
path: /job-order/onestep/{id}/edit
controller: App\Controller\JobOrderController::oneStepEditSubmit
methods: [POST]
+
+jo_ajax_popup:
+ path: /job-order/{id}/popup
+ controller: App\Controller\JobOrderController::popupInfo
+ methods: [GET]
+
diff --git a/src/Controller/CustomerController.php b/src/Controller/CustomerController.php
index 5c15bfaa..7421fec0 100644
--- a/src/Controller/CustomerController.php
+++ b/src/Controller/CustomerController.php
@@ -5,6 +5,9 @@ namespace App\Controller;
use App\Ramcar\CrudException;
use App\Service\CustomerHandlerInterface;
+use App\Entity\Customer;
+
+use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php
index 4a5a7bf3..039ea37d 100644
--- a/src/Controller/JobOrderController.php
+++ b/src/Controller/JobOrderController.php
@@ -8,6 +8,7 @@ use App\Ramcar\InvoiceCriteria;
use App\Entity\CustomerVehicle;
use App\Entity\Promo;
use App\Entity\Battery;
+use App\Entity\JobOrder;
use App\Service\InvoiceGeneratorInterface;
use App\Service\JobOrderHandlerInterface;
@@ -20,6 +21,8 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
+
use Catalyst\MenuBundle\Annotation\Menu;
class JobOrderController extends Controller
@@ -908,4 +911,15 @@ class JobOrderController extends Controller
'success' => 'Changes have been saved!'
]);
}
+
+ /**
+ * @ParamConverter("jo", class="App\Entity\JobOrder")
+ */
+ public function popupInfo(JobOrder $jo)
+ {
+ if ($jo == null)
+ return new Response('No job order data');
+
+ return $this->render('job-order/popup.html.twig', [ 'jo' => $jo ]);
+ }
}
diff --git a/templates/home.html.twig b/templates/home.html.twig
index 88ae8aa2..f55fe863 100644
--- a/templates/home.html.twig
+++ b/templates/home.html.twig
@@ -22,7 +22,8 @@ function initMap() {
var default_lng = {% trans %}default_long{% endtrans %};
var rider_popup_url = '/riders/[id]/popup';
- map = mapCreate('dashboard_map', default_lat, default_lng, 'road', 13, rider_popup_url);
+ var cust_popup_url = '/job-order/[id]/popup';
+ map = mapCreate('dashboard_map', default_lat, default_lng, 'road', 13, rider_popup_url, cust_popup_url);
}
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 @@