/**
  * @Route("/", name="homepage")
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
  */
 public function indexAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     // Persist filters when navigation from page to page and create the initial query
     $arrayParams = ParamUtil::createArrayParams($request->query->all());
     $query = $em->getRepository('AppBundle:Person')->findFiltered($arrayParams);
     $form = $this->createForm(PersonType::class, $arrayParams);
     $form->handleRequest($request);
     if ($form->isValid()) {
         // Create parameters and redirect showing confirmation message
         $arrayParams = ParamUtil::createArrayParams($form->getData(), 'form');
         if ($form->get('filter')->isClicked()) {
             $this->get('session')->getFlashBag()->add('success', 'Filter applied');
             return $this->redirectToRoute('homepage', $arrayParams);
         } else {
             $this->get('session')->getFlashBag()->add('notice', 'Filters cleared');
             return $this->redirectToRoute('homepage');
         }
     }
     $this->get('session')->getFlashBag()->add('info', $query->getDql());
     // Prepare pagination & add parameters for the construction of links
     $pagination = $this->get('knp_paginator')->paginate($query, $request->query->getInt('page', 1), 10);
     $pagination = ParamUtil::setParams($pagination, $arrayParams);
     return $this->render('default/index.html.twig', array('form' => $form->createView(), 'pagination' => $pagination));
 }