<?php
namespace App\Controller;
use App\Entity\TypeCable;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Contracts\Translation\TranslatorInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use App\Form\TypeCableForm;
class TypeCableController extends AbstractController
{
/**
* @Route("/settings/types/cable", name="type_cable")
*/
public function indexAction(Request $request, TranslatorInterface $translator)
{
$user = $this->getUser();
$typeCable = new TypeCable();
$errors = [];
$form = $this->createForm(TypeCableForm::class, $typeCable);
$form->handleRequest($request);
if ($form->isSubmitted() && $user->hasRole("ROLE_SUPER_ADMIN")) {
if($form->isValid()){
$typeCable = $form->getData();
$em = $this->getDoctrine()->getManager();
$em->persist($typeCable);
$em->flush();
return $this->redirectToRoute('type_cable');
}
$validator = $this->get('validator');
$errors = $validator->validate($typeCable);
}
$list = $this->getDoctrine()->getRepository(TypeCable::class)->findAll();
return $this->render('types/cable.html.twig', [
'action' => 'insert',
'page_title' => $translator->trans('Cable Type'),
'box_title' => '<i class="fa fa-plus-circle fa-fw"></i> '.$translator->trans('Add new'),
'path_default' => 'type_cable',
'path_update' => 'type_cable_update',
'path_delete' => 'type_cable_delete',
'form' => $form->createView(),
'list' => $list,
'errors' => $errors
]);
}
/**
* @Route("/settings/types/cable/edit/{id}", name="type_cable_update")
*/
public function updateAction(Request $request, TypeCable $typeCable, $id, TranslatorInterface $translator)
{
$em = $this->getDoctrine()->getManager();
$cable = $em->getRepository(TypeCable::class)->find($id);
$color = $cable->getColor();
$user = $this->getUser();
$errors = [];
$form = $this->createForm(TypeCableForm::class, $typeCable);
$form->handleRequest($request);
if ($form->isSubmitted() && $user->hasRole("ROLE_SUPER_ADMIN")) {
if($form->isValid()){
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('type_cable');
}
$validator = $this->get('validator');
$errors = $validator->validate($typeCable);
$this->getDoctrine()->getManager()->detach($typeCable);
}
$list = $this->getDoctrine()->getRepository(TypeCable::class)->findAll();
return $this->render('types/cable.html.twig', [
'action' => 'update',
'page_title' => $translator->trans('Cable Type'),
'box_title' => '<i class="fa fa-edit fa-fw"></i> '.$translator->trans('Edit'),
'path_default' => 'type_cable',
'path_update' => 'type_cable_update',
'path_delete' => 'type_cable_delete',
'form' => $form->createView(),
'list' => $list,
'color' => $color,
'errors' => $errors
]);
}
/**
* @IsGranted("ROLE_SUPER_ADMIN")
* @Route("/settings/types/cable/delete/{id}", name="type_cable_delete")
*/
public function deleteAction($id, TranslatorInterface $translator)
{
$em = $this->getDoctrine()->getManager();
$typeCable = $em->getRepository(TypeCable::class)->find($id);
$msgError = null;
try {
$em->remove($typeCable);
$em->flush();
} catch (\Exception $e) {
$msgError = $translator->trans('deleteError');
}
return $this->redirectToRoute('type_cable', array("msgError"=>$msgError));
}
}