diff --git a/src/Controller/DeviceController.php b/src/Controller/DeviceController.php new file mode 100644 index 00000000..efec8748 --- /dev/null +++ b/src/Controller/DeviceController.php @@ -0,0 +1,110 @@ +_edit($entity, $request, $em); + } + + /** + * @Route("/new", name="device_new") + * @Route("/") + * + * @return \Symfony\Component\HttpFoundation\Response + */ + public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer) + { + return $this->_new($request, $em, $importer); + } + + /** + * @Route("/{id}", name="device_delete", methods={"DELETE"}) + */ + public function delete(Request $request, Device $entity, StructuralElementRecursionHelper $recursionHelper) + { + return $this->_delete($request, $entity, $recursionHelper); + } + + /** + * @Route("/export", name="device_export_all") + * @param Request $request + * @param SerializerInterface $serializer + * @param EntityManagerInterface $em + * @return Response + */ + public function exportAll(EntityManagerInterface $em, EntityExporter $exporter, Request $request) + { + return $this->_exportAll($em, $exporter, $request); + } + + /** + * @Route("/{id}/export", name="device_export") + * @param Request $request + * @param AttachmentType $entity + */ + public function exportEntity(Device $entity, EntityExporter $exporter, Request $request) + { + return $this->_exportEntity($entity, $exporter, $request); + } + +} \ No newline at end of file diff --git a/src/Entity/Device.php b/src/Entity/Device.php index 267a09c7..57ef1e38 100644 --- a/src/Entity/Device.php +++ b/src/Entity/Device.php @@ -57,13 +57,13 @@ class Device extends PartsContainingDBElement * @var int * @ORM\Column(type="integer") */ - protected $order_quantity; + protected $order_quantity = 0; /** * @var bool * @ORM\Column(type="boolean") */ - protected $order_only_missing_parts; + protected $order_only_missing_parts = false; /** * @ORM\OneToMany(targetEntity="DevicePart", mappedBy="device") diff --git a/src/Services/EntityURLGenerator.php b/src/Services/EntityURLGenerator.php index 6561ac17..7661f29a 100644 --- a/src/Services/EntityURLGenerator.php +++ b/src/Services/EntityURLGenerator.php @@ -31,6 +31,7 @@ namespace App\Services; use App\Entity\AttachmentType; use App\Entity\Category; +use App\Entity\Device; use App\Entity\NamedDBElement; use App\Entity\Part; use App\Exceptions\EntityNotSupported; @@ -110,12 +111,16 @@ class EntityURLGenerator return $this->urlGenerator->generate('part_edit', ['id' => $entity->getID()]); } - if($entity instanceof AttachmentType) { + if ($entity instanceof AttachmentType) { return $this->urlGenerator->generate('attachment_type_edit', ['id' => $entity->getID()]); } - if($entity instanceof Category) { - return $this->urlGenerator->generate("category_edit", ['id' => $entity->getID()]); + if ($entity instanceof Category) { + return $this->urlGenerator->generate("category_edit", ['id' => $entity->getID()]); + } + + if ($entity instanceof Device) { + return $this->urlGenerator->generate("device_edit", ['id' => $entity->getID()]); } //Otherwise throw an error @@ -135,14 +140,18 @@ class EntityURLGenerator return $this->urlGenerator->generate('part_new'); } - if($entity instanceof AttachmentType) { + if ($entity instanceof AttachmentType) { return $this->urlGenerator->generate('attachment_type_new'); } - if($entity instanceof Category) { + if ($entity instanceof Category) { return $this->urlGenerator->generate('category_new'); } + if ($entity instanceof Device) { + return $this->urlGenerator->generate('device_new'); + } + throw new EntityNotSupported('The given entity is not supported yet!'); } @@ -181,14 +190,18 @@ class EntityURLGenerator public function deleteURL($entity) : string { - if($entity instanceof AttachmentType) { + if ($entity instanceof AttachmentType) { return $this->urlGenerator->generate('attachment_type_delete', ['id' => $entity->getID()]); } - if($entity instanceof Category) { + if ($entity instanceof Category) { return $this->urlGenerator->generate('category_delete', ['id' => $entity->getID()]); } + if ($entity instanceof Device) { + return $this->urlGenerator->generate('device_delete', ['id' => $entity->getID()]); + } + throw new EntityNotSupported('The given entity is not supported yet!'); } diff --git a/src/Services/ToolsTreeBuilder.php b/src/Services/ToolsTreeBuilder.php index 333fac7b..fcf89c4e 100644 --- a/src/Services/ToolsTreeBuilder.php +++ b/src/Services/ToolsTreeBuilder.php @@ -63,6 +63,8 @@ class ToolsTreeBuilder $this->urlGenerator->generate('attachment_type_new')); $nodes[] = new TreeViewNode($this->translator->trans('tree.tools.edit.categories'), $this->urlGenerator->generate('category_new')); + $nodes[] = new TreeViewNode($this->translator->trans('tree.tools.edit.devices'), + $this->urlGenerator->generate('device_new')); $nodes[] = new TreeViewNode('Node 2'); diff --git a/templates/AdminPages/DeviceAdmin.html.twig b/templates/AdminPages/DeviceAdmin.html.twig new file mode 100644 index 00000000..9a75eb32 --- /dev/null +++ b/templates/AdminPages/DeviceAdmin.html.twig @@ -0,0 +1,5 @@ +{% extends "AdminPages/EntityAdminBase.html.twig" %} + +{% block card_title %} + {% trans %}device.caption{% endtrans %} +{% endblock %} \ No newline at end of file