<?php
namespace App\Controller;
use App\Manager\InteractiveMapManager;
use App\Service\Internal\HomePageService;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class HomePageController extends AbstractController
{
public function index(
Request $request,
InteractiveMapManager $interactiveMapManager,
HomePageService $homePageService
): Response {
if ($this->isGranted('IS_AUTHENTICATED_REMEMBERED') && $request->query->get('isWidgetKasLogin')) {
return $this->redirect($request->query->get('redirection'));
}
$parameters['activeTab'] = 'journey';
$activeTab = $request->attributes->get('activeTab');
if ($activeTab == 'schedule') {
$parameters['activeTab'] = $activeTab;
$parameters['scheduleTemplate'] = 'schedule';
$parameters['directLink'] = true;
}
if ($activeTab == 'traffic') {
$parameters['activeTab'] = $activeTab;
$parameters['scheduleTemplate'] = 'schedule';
$parameters['directLink'] = true;
}
$interactiveMapIsEnabled = $interactiveMapManager->isEnabled();
if ($activeTab == 'interactiveMap' && $interactiveMapIsEnabled) {
$parameters['activeTab'] = $activeTab;
$parameters['scheduleTemplate'] = 'schedule';
$parameters['directLink'] = true;
}
$session = $request->getSession();
$session->set('context', 'SIM');
$session->set('php_session_id', $request->cookies->get('PHPSESSID'));
$parameters['displayDisruptionWithAjax'] = true;
$parameters = $homePageService->getRenderParameters([], $parameters);
$parameters['isXmlHttpMode'] = true;
$parameters['displayFavorites'] = true;
$parameters['php_session_id'] = $session->get('php_session_id');
$homePageService->getDisruption($parameters);
return $this->render('pages/sim/home.html.twig', $parameters);
}
public function traffic(Request $request, HomePageService $homePageService): Response
{
$parameters['issubnetworks'] = $request->get('issubnetworks');
$homePageService->getDisruption($parameters);
return $this->render('modules/search-widget/traffic-infos/traffic-result.html.twig', $parameters);
}
public function linesAndPoi(InteractiveMapManager $interactiveMapManager): Response
{
$params = $interactiveMapManager->interactiveMapData();
return $this->render('modules/search-widget/interactive-map/form.html.twig', $params);
}
public function getAllLines(InteractiveMapManager $manager): JsonResponse
{
$allLines = $manager->getAllLines();
return new JsonResponse($allLines);
}
public function getLinesBySubnetwork(Request $request, InteractiveMapManager $manager): Response
{
$subnetworId = $request->query->get('subnetwokId');
$lines = [];
if (!empty($subnetworId)) {
$lines = $manager->getLinesBySubnetwork($subnetworId);
}
return $this->render(
'modules/search-widget/interactive-map/includes/lines.html.twig',
['lines' => $lines]
);
}
public function message(Request $request, HomePageService $homePageService): Response
{
$parameters['baseUrl'] = 'https://' . $_SERVER['SERVER_NAME'];
$parameters = $homePageService->getRenderParameters();
$parameters['message'] = $request->get('message');
$parameters['feature'] = "";
return $this->render('pages/common/message.html.twig', $parameters);
}
public function outdatedBrowser(Request $request, HomePageService $homePageService): Response
{
$parameters['baseUrl'] = 'https://' . $_SERVER['SERVER_NAME'];
$parameters = $homePageService->getRenderParameters();
return $this->render('pages/common/outdated-browser.html.twig', $parameters);
}
}