diff --git a/config/routes/geofence.yaml b/config/routes/geofence.yaml index 5d6a2ea9..a902802f 100644 --- a/config/routes/geofence.yaml +++ b/config/routes/geofence.yaml @@ -4,12 +4,12 @@ geofence_list: path: /geofence controller: App\Controller\GeofenceController::index +geofence_upload_kml: + path: /geofence/upload + controller: App\Controller\GeofenceController::uploadKML + methods: [POST] + geofence_create: path: /geofence/create controller: App\Controller\GeofenceController::addForm methods: [GET] - -geofence_create_submit: - path: /geofence/create - controller: App\Controller\GeofenceController::addSubmit - methods: [POST] diff --git a/src/Controller/GeofenceController.php b/src/Controller/GeofenceController.php index f96efda2..0411fd39 100644 --- a/src/Controller/GeofenceController.php +++ b/src/Controller/GeofenceController.php @@ -5,6 +5,9 @@ namespace App\Controller; use App\Ramcar\BaseController; use App\Entity\SupportedArea; +use App\Service\KMLFileImporter; +use App\Service\FileUploader; + use Doctrine\ORM\Query; use Doctrine\ORM\QueryBuilder; use Symfony\Component\HttpFoundation\Request; @@ -38,12 +41,27 @@ class GeofenceController extends BaseController $params = $this->initParameters('geofence_list'); $params['obj'] = new SupportedArea(); - $params['mode'] = 'create'; - - $this->fillFormTags($params); // response return $this->render('geofence/form.html.twig', $params); } + public function uploadKML(Request $req, FileUploader $uploader, KMLFileImporter $importer) + { + // retrieve temporary info for file + $file = $req->files->get('kml_file'); + + // upload the file + $filename = $uploader->upload($file); + + // process the kml file + $kml_file = $uploader->getTargetDir() . '/' . $filename; + $importer->getMapdata($kml_file); + + // return response + return $this->json([ + 'success' => true, + 'filename' => $filename + ]); + } } diff --git a/templates/geofence/form.html.twig b/templates/geofence/form.html.twig new file mode 100644 index 00000000..be2d4a5d --- /dev/null +++ b/templates/geofence/form.html.twig @@ -0,0 +1,96 @@ +{% extends 'base.html.twig' %} + +{% block body %} + +
+
+
+

Geofence

+
+
+
+ +
+ +
+
+
+
+
+
+ + + +

+ New Coverage Area +

+
+
+
+
+
+
+
+ +
+
+

+ Drop files here or click to upload. +

+ + Upload only valid KML files + +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+{% endblock %} + +{% block scripts %} + +{% endblock %} + diff --git a/templates/geofence/list.html.twig b/templates/geofence/list.html.twig index 31dda159..d26bf7ec 100644 --- a/templates/geofence/list.html.twig +++ b/templates/geofence/list.html.twig @@ -17,23 +17,29 @@
-
+
-

+

Covered Areas

+

+ + + + New Coverage Area + + +

+
-
+
-