src/Controller/DefaultController.php line 45

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Skoda;
  4. use App\Services\CiselnikObci;
  5. use App\Services\Ciselniky;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\HttpFoundation\JsonResponse;
  11. use App\Controller\ActivityCheckController;
  12. use App\Entity\LastActivity;
  13. use App\Entity\User;
  14. use Symfony\Component\HttpFoundation\File\UploadedFile;
  15. class DefaultController extends AbstractController implements ActivityCheckController {
  16.     public function checkUser(): void {
  17.         $user $this->getUser();
  18.         if ($user instanceof User) {
  19.             $interval $this->getParameter('password_change_interval') ?? 30;
  20.             if ($user->getPasswordChanged() < (new \DateTime("- $interval days"))) {
  21.                 $this->addFlash('danger''security-password-expired');
  22.             }
  23.         }
  24.     }
  25.     /**
  26.      * @Route("/save-file/{slug}", name="add-file")
  27.      */
  28.     public function fileUploadAction(Request $request$slug null) {
  29.         $dir $this->getParameter('uploads_dir');
  30.         $rootDir $this->getParameter('uploads_root_dir');
  31.         $maxSize 25 1000 1000;
  32.         //$allowedTypes = ['image/png', 'image/jpeg'];
  33.         $allowedExtensions = ['png''PNG''jpg''JPG''jpeg''JPEG''gif''pdf''PDF''txt''TXT''xls''xlsx''doc''docx''ppt''pptx''pps''ppsx'];
  34.         $prefix = (new \DateTime('now'))->format('ymd') . '_';
  35.         $result = [];
  36.         $files $request->files->get('files');
  37.         if ($files) {
  38.             foreach ($files as $key => $file) {
  39.                 if ($file instanceof UploadedFile && ($file->getClientSize() < $maxSize)
  40.                     //&& in_array($file->getClientMimeType(), $allowedTypes)
  41.                     && in_array($file->getClientOriginalExtension(), $allowedExtensions)
  42.                 ) {
  43.                     $fullName uniqid($prefix) . '.' $file->getClientOriginalExtension();
  44.                     $file->move($rootDir$fullName);
  45.                     $result[$key] = [
  46.                         "name" => $file->getClientOriginalName(),
  47.                         "fullName" => $fullName,
  48.                         "size" => $file->getClientSize(),
  49.                         "type" => $file->getClientMimeType(),
  50.                         "url" => $dir '/' $fullName,
  51.                         "ext" => $file->getClientOriginalExtension(),
  52.                     ];
  53.                 }
  54.             }
  55.             //osetrit odpoved ak je result prazdny
  56.             return new JsonResponse(['files' => $result]);
  57.         }
  58.         echo('error');
  59.         return new JsonResponse(['error' => ['message' => 'Error']]);
  60.     }
  61.     /**
  62.      * @Route("/", name="homepage")
  63.      */
  64.     public function indexAction() {
  65.         $this->checkUser();
  66. //        return $this->redirectToRoute('uvod');
  67.         return $this->render('default/uvod.html.twig');
  68.     }
  69.     /**
  70.      * @Route("/uvod", name="uvod")
  71.      */
  72.     public function uvodAction() {
  73. //        return $this->render('default/uvod.html.twig');
  74.         return $this->redirectToRoute('homepage');
  75.     }
  76.     /**
  77.      * @Route("/visits", name="visits")
  78.      */
  79.     public function visitsOldAction() {
  80.         return $this->redirectToRoute('report-visits');
  81.     }
  82.     /**
  83.      * @Route("/ciselniky", name="ciselniky")
  84.      */
  85.     public function ciselnikyAction(
  86.         Request      $request,
  87.         CiselnikObci $ciselnikObci,
  88.         Ciselniky    $ciselniky
  89.     ) {
  90.         if ($request->isXmlHttpRequest() || $request->query->get('showJson') == 1) {
  91.             $result = [];
  92.             if ($request->get('cis_key')) {
  93. //                $result = $this->container->get('ciselnikObci')->getActual($request->get('cis_key'), $request->get('cis_value'));
  94.                 $result $ciselnikObci->getActual($request->get('cis_key'), $request->get('cis_value'));
  95.             } elseif ($request->get('operator_value')) {
  96. //                $result = $this->container->get('ciselniky')->getOperatorData($request->get('operator_value'));
  97.                 $result $ciselniky->getOperatorData($request->get('operator_value'));
  98.             } else {
  99.                 //$result = $this->container->get('ciselnikObci')->getActual('zuj', 105);
  100.             }
  101.             return new JsonResponse($result);
  102.         } else {
  103.             return $this->redirectToRoute('homepage');
  104.         }
  105.     }
  106.     /**
  107.      * @Route("/calculator/{slug}", name="calculator")
  108.      */
  109.     public function calculatorAction($slug) {
  110.         if ($slug == 'vypocet-eai-indexu') {
  111.             return $this->redirectToRoute('riziko');
  112.             // $url = 'https://oldenviskody.enviroportal.sk/Riziko.aspx';
  113.             // $content = file_get_contents($url);
  114.             // return $this->render('calculator/test.html.twig',[
  115.             //     "test" => $content
  116.             // ]);
  117.         }
  118.         //return $this->render('calculator/vypocet_stary.html.twig');
  119.         return $this->redirectToRoute('uvod');
  120.     }
  121.     /**
  122.      * @Route("/riziko", name="riziko")
  123.      */
  124.     public function rizikoAction() {
  125.         //return $this->render('calculator/vypocet_eai_indexu.html.twig');
  126.         return $this->riskAction();
  127.     }
  128.     /**
  129.      * @Route("/risk", name="risk")
  130.      */
  131.     public function riskAction() {
  132.         $this->checkUser();
  133.         $css = [];
  134.         $js = [];
  135.         $pathToManifest "react/risk/build";
  136.         $manifestPath $pathToManifest '/asset-manifest.json';
  137.         $manifestFile fopen($manifestPath"r");
  138.         $content fread($manifestFilefilesize($manifestPath));
  139.         fclose($manifestFile);
  140.         foreach (json_decode($contenttrue)['entrypoints'] as $fileName) {
  141.             if ((mb_strrpos($fileName"css") === mb_strlen($fileName) - mb_strlen("css"))) {
  142.                 $css[] = "/" $pathToManifest "/" $fileName;
  143.             } else {
  144.                 $js[] = "/" $pathToManifest "/" $fileName;
  145.             }
  146.         }
  147.         return $this->render('calculator/risk.html.twig', [
  148.             "jsArr" => $js,
  149.             "cssArr" => $css
  150.         ]);
  151.     }
  152.     /**
  153.      * @Route("/mapy", name="mapy")
  154.      */
  155.     public function mapyAction() {
  156.         $this->checkUser();
  157. //        $this->addFlash('warning', "maps-not-working");
  158. //        return $this->redirectToRoute('uvod');
  159.         return $this->render('default/mapy.html.twig');
  160.     }
  161.     /**
  162.      * @Route("/ochrana-osobnych-udajov", name="gdpr")
  163.      */
  164.     public function gdprAction() {
  165.         $this->checkUser();
  166.         return $this->render('default/gdpr.html.twig');
  167.     }
  168.     /**
  169.      * @Route("/vyhlasenie-o-pristupnosti", name="vyhlasenie")
  170.      */
  171.     public function vyhlasenieAction() {
  172.         $this->checkUser();
  173.         return $this->render('default/vyhlasenie.html.twig');
  174.     }
  175.     /**
  176.      * @Route("/pomocnik", name="help")
  177.      */
  178.     public function helpAction() {
  179.         $this->checkUser();
  180.         return $this->render('default/help.html.twig');
  181.     }
  182.     /**
  183.      * @Route("/cookies", name="cookies")
  184.      */
  185.     public function cookiesAction() {
  186.         $this->checkUser();
  187.         return $this->render('default/cookies.html.twig');
  188.     }
  189. }