<?php
namespace App\Controller;
use App\Entity\AreasWeCover;
use App\Form\AreasWeCoverType;
use App\Annotation\CmsAdminDash;
use App\Annotation\CmsComponent;
use App\Repository\AreasWeCoverRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
#[Route('/takeflight/areas-we-cover')]
class AreasWeCoverController extends AbstractController
{
/**
* @CmsAdminDash("Areas We Cover", active=true, routeName="app_areas_we_cover_index", icon="fa fa-map", menuPosition=40, parentRouteName="control_content_index")
*/
#[Route('/', name: 'app_areas_we_cover_index', methods: ['GET'])]
public function index(AreasWeCoverRepository $areasWeCoverRepository): Response
{
return $this->render('areas_we_cover/index.html.twig', [
'areas_we_covers' => $areasWeCoverRepository->findBy(['deleted' => false]),
]);
}
#[Route('/new', name: 'app_areas_we_cover_new', methods: ['GET', 'POST'])]
public function new(Request $request): Response
{
$areasWeCover = new AreasWeCover();
$form = $this->createForm(AreasWeCoverType::class, $areasWeCover);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// REQUIRED IF USING UPLOAD FILE TRAIT
// $areasWeCover->uploadFile();
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($areasWeCover);
$entityManager->flush();
return $this->redirectToRoute('app_areas_we_cover_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('areas_we_cover/new.html.twig', [
'areas_we_cover' => $areasWeCover,
'form' => $form->createView(),
]);
}
#[Route('/{id}', name: 'app_areas_we_cover_show', methods: ['GET'])]
public function show(AreasWeCover $areasWeCover): Response
{
return $this->render('areas_we_cover/show.html.twig', [
'areas_we_cover' => $areasWeCover,
]);
}
#[Route('/{id}/edit', name: 'app_areas_we_cover_edit', methods: ['GET', 'POST'])]
public function edit(Request $request, AreasWeCover $areasWeCover): Response
{
$form = $this->createForm(AreasWeCoverType::class, $areasWeCover);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// REQUIRED IF USING UPLOAD FILE TRAIT
// $areasWeCover->uploadFile();
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('app_areas_we_cover_index', [], Response::HTTP_SEE_OTHER);
}
return $this->render('areas_we_cover/edit.html.twig', [
'areas_we_cover' => $areasWeCover,
'form' => $form->createView(),
]);
}
#[Route('/{id}', name: 'app_areas_we_cover_delete', methods: ['POST'])]
public function delete(Request $request, AreasWeCover $areasWeCover): Response
{
if ($this->isCsrfTokenValid('delete'.$areasWeCover->getId(), $request->request->get('_token'))) {
$entityManager = $this->getDoctrine()->getManager();
$areasWeCover->setActive(false);
$areasWeCover->setDeleted(true);
$entityManager->persist($areasWeCover);
$entityManager->flush();
$this->addFlash('success', 'Success - AreasWeCover deleted');
}
return $this->redirectToRoute('app_areas_we_cover_index', [], Response::HTTP_SEE_OTHER);
}
/**
* @CmsComponent("Areas We Cover Component", active=true, routeName="embed_areas_we_cover_component")
*
* @param mixed $request
*/
#[Route('/areas-we-cover', name: 'embed_areas_we_cover_component')]
public function areasWeCover(): Response
{
$entityManager = $this->getDoctrine()->getManager();
$areas = $entityManager->getRepository(AreasWeCover::class)->findBy(['deleted' => false, 'active' => true], ['sortOrder' => 'ASC']);
if (! $areas) {
return new Response('');
}
return $this->render('@theme/areas_we_cover/index.html.twig', [
'areas' => $areas
]);
}
}