diff --git a/src/Controller/Config/MachineController.php b/src/Controller/Config/MachineController.php new file mode 100644 index 0000000..16b604a --- /dev/null +++ b/src/Controller/Config/MachineController.php @@ -0,0 +1,96 @@ +entityManager = $entityManager; + $this->machineRepository = $machineRepository; + } + + /** + * List of machines + * + * @return Response The response + */ + #[Route('/', name: 'config_machine_list', alias: 'config_machine')] + public function list (): Response { + return $this->render( + 'Config/Machine/List.html.twig', + [ + 'machines' => $this->machineRepository->findAll(), + ] + ); + } + + /** + * Edit/Create a machine + * + * @param Request $request The request + * @param Machine|null $machine The machine to edit + * + * @return Response The response + */ + #[Route('/Create', name: 'config_machine_create')] + #[Route('/Edit-{id}', name: 'config_machine_edit')] + public function edit (Request $request, ?Machine $machine = null): Response { + $machine ??= new Machine(); + + $form = $this->createForm(MachineEditForm::class, $machine); + $form->handleRequest($request); + if ($form->isSubmitted() && $form->isValid()) { + $this->entityManager->persist($machine); + $this->entityManager->flush(); + + $this->addFlash(FlashType::SUCCESS, 'La machine a bien été enregistré.'); + return $this->redirectToRoute('config_machine_list'); + } + + return $this->render('Config/Machine/Edit.html.twig', [ + 'machine' => $machine, + 'form' => $form->createView(), + ]); + } + + /** + * Delete a machine + * + * @param Machine $machine The machine to delete + * + * @return Response The response + */ + #[Route('/Delete-{id}', name: 'config_machine_delete')] + public function delete (Machine $machine): Response { + $this->entityManager->remove($machine); + $this->entityManager->flush(); + + $this->addFlash(FlashType::SUCCESS, 'La machine a bien été supprimé.'); + return $this->redirectToRoute('config_machine_list'); + } +} diff --git a/src/Form/Config/MachineEditForm.php b/src/Form/Config/MachineEditForm.php new file mode 100644 index 0000000..a1441ed --- /dev/null +++ b/src/Form/Config/MachineEditForm.php @@ -0,0 +1,46 @@ +setDefaults( + [ + 'data_class' => Machine::class, + ] + ); + } + + /** + * @inheritDoc + */ + public function buildForm (FormBuilderInterface $builder, array $options): void { + $builder + ->add('name', null, [ + 'label' => 'Nom', + ]) + ->add('labelExtraInfo1', null, [ + 'label' => 'Nom d\'information complémentaire n° 1', + 'required' => false, + ]) + ->add('labelExtraInfo2', null, [ + 'label' => 'Nom d\'information complémentaire n° 2', + 'required' => false, + ]) + ->add('submit', SubmitType::class, [ + 'label' => 'Enregistrer', + ]); + } +} \ No newline at end of file diff --git a/templates/Config/Machine/Edit.html.twig b/templates/Config/Machine/Edit.html.twig new file mode 100644 index 0000000..82d1545 --- /dev/null +++ b/templates/Config/Machine/Edit.html.twig @@ -0,0 +1,15 @@ +{% extends 'base.html.twig' %} + +{% block title %}{% if machine.id is null %}Création {% else %}Modification{% endif %} machine - {{ parent() }}{% endblock %} + +{% block mainContent %} +