<?php
namespace App\Controller;
use App\Entity\Slave\User;
use App\Form\PasswordCreationType;
use App\Form\PasswordRecoveryType;
use App\Form\Model\Contact;
use App\Form\ContactType;
use App\Service\ValidationService;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
class DefaultController extends AbstractController
{
protected $mr;
private $params;
public function __construct(ManagerRegistry $managerRegistry, ParameterBagInterface $params)
{
$this->mr = $managerRegistry;
$this->params = $params;
}
/**
* @Route("/", name="homepage")
*/
public function index(Request $request, MailerInterface $mailer)
{
return $this->render('default/index.html.twig');
}
/**
* @Route("/home/{section}", name="homepage_with_section")
*/
public function indexWithSection(Request $request, $section)
{
$session = $request->getSession();
$session->set('section', $section);
$session->set('dashboardTab', 'profile');
return $this->redirectToRoute('homepage');
}
/**
* @Route("/aiuto", name="help")
*/
public function help(Request $request)
{
$em = $this->mr->getManager('master');
$slug = $request->request->get('slug');
$help = $em->getRepository("App\Entity\Master\Help")->findOneBySlug($slug);
$response = array("code" => 200, "success" => true, "title" => $help->getTitle(), "text" => $help->getText());
return new Response(json_encode($response));
}
/**
* @Route("/cookie", name="cookies")
*/
public function cookies(Request $request)
{
return $this->render('default/cookies.html.twig');
}
/**
* @Route("/cookie/accetta", name="cookie_accept")
*/
public function cookieAccept(Request $request)
{
setcookie("cookieconsent_dismissed", "yes", time() + (86400 * 30 * 365), "/");
setcookie("cookie_accepted", "yes", time() + (86400 * 30 * 365), "/");
return $this->redirect($request->server->get('HTTP_REFERER'));
}
/**
* @Route("/cookie/rifiuta", name="cookie_deny")
*/
public function cookieDeny(Request $request)
{
setcookie("cookieconsent_dismissed", "yes", time() + (86400 * 30), "/");
setcookie("cookie_accepted", "no", time() + (86400 * 30), "/");
setcookie("_ga", "", time() - (86400 * 30), '/', '.eposmanager.software');
setcookie("_ga_RPMQX192CL", "", time() - (86400 * 30), '/', '.eposmanager.software');
return $this->redirect($request->server->get('HTTP_REFERER'));
}
/**
* @Route("/rimuovi-filtro", name="remove_filter")
*/
public function removeFilter(Request $request)
{
$session = $request->getSession();
$route = $request->get('route');
$routeParams = $request->get('route_params');
$index = $request->get('index');
if($routeParams == null) $routeParams = array();
$session->remove($route."_filters");
$session->remove($route."_page");
return $this->redirectToRoute($route, $routeParams);
}
// FILTRI
/**
* @Route("/comuni-aggiorna", name="cities_update")
*/
public function citiesUpdate(Request $request)
{
$em = $this->mr->getManager('master');
$name = $request->request->get('name');
$cities = $em->getRepository("App\Entity\Master\City")->findByName($name);
$first = true;
$json = '[';
foreach($cities as $c){
if($first) $first = false; else $json.= ',';
$json.= '{
"id":"'.$c->getId().'",
"name":'.json_encode($c->getName()).',
"province":'.json_encode($c->getProvince()->getSign()).'
}';
}
$json .= ']';
$response = array("code" => 200, "success" => true, "cities" => $json);
return new Response(json_encode($response));
}
/**
* @Route("/comune-cap", name="city_zips")
*/
public function cityZips(Request $request)
{
$em = $this->mr->getManager('master');
if($request->request->get('cityId') != null){
$city = $em->getRepository("App\Entity\Master\City")->findOneById($request->request->get('cityId'));
$first = true;
$zips = '';
foreach($city->getZips() as $zip){
if($first) $first = false; else $zips.= ',';
$zips .= $zip->getId().'-'.$zip->getCode();
}
}
else{
$zips = '';
}
$response = array("code" => 200, "success" => true, "zips" => $zips);
return new Response(json_encode($response));
}
/**
* @Route("/nazioni-aggiorna", name="countries_update")
*/
public function countriesUpdate(Request $request)
{
$em = $this->mr->getManager('master');
$name = $request->request->get('name');
$countries = $em->getRepository("App\Entity\Master\Country")->findByName($name);
$first = true;
$jsonCountries = '[';
foreach($countries as $c){
if($first)
$first = false;
else
$jsonCountries.= ',';
$jsonCountries.= '{"id":"'.$c->getId().'", "name":'.json_encode($c->getName()).'}';
}
$jsonCountries .= ']';
$response = array("code" => 200, "success" => true, "countries" => $jsonCountries);
return new Response(json_encode($response));
}
/**
* @Route("/nazionalità-aggiorna", name="nationalities_update")
*/
public function nationalitiesUpdate(Request $request)
{
$em = $this->mr->getManager('master');
$nationality = $request->request->get('nationality');
$countries = $em->getRepository("App\Entity\Master\Country")->findByNationality($nationality);
$first = true;
$jsonCountries = '[';
foreach($countries as $c){
if($first)
$first = false;
else
$jsonCountries.= ',';
$jsonCountries.= '{"id":"'.$c->getId().'", "nationality":'.json_encode($c->getNationality()).'}';
}
$jsonCountries .= ']';
$response = array("code" => 200, "success" => true, "countries" => $jsonCountries);
return new Response(json_encode($response));
}
/**
* @Route("/trova-comune-da-codice", name="find_city_from_code")
*/
public function findCityFromCode(Request $request)
{
$em = $this->mr->getManager('master');
$code = $request->request->get('cityCode');
$city = $em->getRepository("App\Entity\Master\City")->findOneByCode($code);
$response = array("code" => 200, "success" => true, "cityId" => $city->getId(), "cityName" => $city->getName());
return new Response(json_encode($response));
}
/**
* @Route("/aggiorna-sessione-filtro-tab", name="update_tab_filter_session")
*/
public function updateTabFilterSession(Request $request)
{
$path = $request->request->get('path');
$tab = $request->request->get('tab');
$request->getSession()->set($path."_tab", $tab);
return new Response(json_encode(["code" => 200, "success" => true]));
}
/**
* @Route("/aggiorna-sessione-filtro-tab2", name="update_tab2_filter_session")
*/
public function updateTab2FilterSession(Request $request)
{
$path = $request->request->get('path');
$tab = $request->request->get('tab');
$request->getSession()->set($path."_tab2", $tab);
return new Response(json_encode(["code" => 200, "success" => true]));
}
}