point-tools/src/Skobkin/Bundle/PointToolsBundle/Controller/MainController.php

65 lines
2.2 KiB
PHP
Raw Normal View History

2015-05-30 06:22:06 +00:00
<?php
namespace Skobkin\Bundle\PointToolsBundle\Controller;
use Doctrine\ORM\EntityManager;
use Skobkin\Bundle\PointToolsBundle\Form\UserSearchType;
2015-05-30 06:22:06 +00:00
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
2015-05-30 06:22:06 +00:00
class MainController extends Controller
{
public function indexAction(Request $request)
2015-05-30 06:22:06 +00:00
{
/** @var EntityManager $em */
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(
new UserSearchType(),
null,
[
'action' => $this->generateUrl('index'),
'method' => 'POST',
]
);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$login = $form->get('login')->getData();
if (null !== $user = $em->getRepository('SkobkinPointToolsBundle:User')->findOneBy(['login' => $login])) {
return $this->redirectToRoute('user_show', ['login' => $login]);
}
$form->get('login')->addError(new FormError('Login not found'));
}
2015-05-30 06:22:06 +00:00
return $this->render('SkobkinPointToolsBundle:Main:index.html.twig', [
'form' => $form->createView(),
2015-06-23 09:38:43 +00:00
'users_count' => $em->getRepository('SkobkinPointToolsBundle:User')->getUsersCount(),
'subscribers_count' => $em->getRepository('SkobkinPointToolsBundle:Subscription')->getUserSubscribersCountById($this->container->getParameter('point_id')),
'events_count' => $em->getRepository('SkobkinPointToolsBundle:SubscriptionEvent')->getLastDayEventsCount(),
2015-05-31 00:01:48 +00:00
'service_login' => $this->container->getParameter('point_login'),
2015-05-30 06:22:06 +00:00
]);
}
public function searchUserAjaxAction($login)
{
$em = $this->getDoctrine()->getManager();
$result = [];
foreach ($em->getRepository('SkobkinPointToolsBundle:User')->findUsersLikeLogin($login) as $user) {
$result[] = [
'login' => $user->getLogin(),
'name' => $user->getName(),
];
}
return new JsonResponse($result);
}
2015-05-30 06:22:06 +00:00
}