This commit is contained in:
Julien Fastré 2022-05-13 16:05:38 +02:00
parent 2a5bb28210
commit 89a700ff61
3 changed files with 48 additions and 49 deletions

View File

@ -87,6 +87,13 @@ class DocumentCategory
return $this->name; return $this->name;
} }
public function setBundleId($id): self
{
$this->bundleId = $id;
return $this;
}
public function setDocumentClass($documentClass): self public function setDocumentClass($documentClass): self
{ {
$this->documentClass = $documentClass; $this->documentClass = $documentClass;
@ -100,11 +107,4 @@ class DocumentCategory
return $this; return $this;
} }
public function setBundleId($id): self
{
$this->bundleId = $id;
return $this;
}
} }

View File

@ -21,8 +21,6 @@ use Chill\MainBundle\Form\UserType;
use Chill\MainBundle\Pagination\PaginatorInterface; use Chill\MainBundle\Pagination\PaginatorInterface;
use Chill\MainBundle\Repository\UserRepository; use Chill\MainBundle\Repository\UserRepository;
use Chill\MainBundle\Templating\Listing\FilterOrderHelper; use Chill\MainBundle\Templating\Listing\FilterOrderHelper;
use Chill\MainBundle\Templating\Listing\FilterOrderHelperFactoryInterface;
use LogicException;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use RuntimeException; use RuntimeException;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
@ -39,7 +37,6 @@ class UserController extends CRUDController
{ {
public const FORM_GROUP_CENTER_COMPOSED = 'composed_groupcenter'; public const FORM_GROUP_CENTER_COMPOSED = 'composed_groupcenter';
private LoggerInterface $logger; private LoggerInterface $logger;
private UserPasswordEncoderInterface $passwordEncoder; private UserPasswordEncoderInterface $passwordEncoder;
@ -48,7 +45,6 @@ class UserController extends CRUDController
private ValidatorInterface $validator; private ValidatorInterface $validator;
public function __construct( public function __construct(
LoggerInterface $chillLogger, LoggerInterface $chillLogger,
ValidatorInterface $validator, ValidatorInterface $validator,
@ -61,42 +57,6 @@ class UserController extends CRUDController
$this->passwordEncoder = $passwordEncoder; $this->passwordEncoder = $passwordEncoder;
} }
protected function countEntities(string $action, Request $request, ?FilterOrderHelper $filterOrder = null): int
{
if (!$filterOrder instanceof FilterOrderHelper) {
return parent::countEntities($action, $request, $filterOrder);
}
if (null === $filterOrder->getQueryString()) {
return parent::countEntities($action, $request, $filterOrder);
}
return $this->userRepository->countByUsernameOrEmail($filterOrder->getQueryString());
}
protected function getQueryResult(
string $action,
Request $request,
int $totalItems,
PaginatorInterface $paginator,
?FilterOrderHelper $filterOrder = null
) {
if (0 === $totalItems) {
return [];
}
if (!$filterOrder instanceof FilterOrderHelper) {
return parent::getQueryResult($action, $request, $totalItems, $paginator, $filterOrder);
}
if (null === $filterOrder->getQueryString()) {
return parent::getQueryResult($action, $request, $totalItems, $paginator, $filterOrder);
}
return $this->userRepository->findByUsernameOrEmail($filterOrder->getQueryString(), ['usernameCanonical' => 'ASC'],
$paginator->getItemsPerPage(), $paginator->getCurrentPageFirstItemNumber());
}
/** /**
* @Route("/{_locale}/admin/main/user/{uid}/add_link_groupcenter", * @Route("/{_locale}/admin/main/user/{uid}/add_link_groupcenter",
* name="admin_user_add_groupcenter") * name="admin_user_add_groupcenter")
@ -269,6 +229,19 @@ class UserController extends CRUDController
->build(); ->build();
} }
protected function countEntities(string $action, Request $request, ?FilterOrderHelper $filterOrder = null): int
{
if (!$filterOrder instanceof FilterOrderHelper) {
return parent::countEntities($action, $request, $filterOrder);
}
if (null === $filterOrder->getQueryString()) {
return parent::countEntities($action, $request, $filterOrder);
}
return $this->userRepository->countByUsernameOrEmail($filterOrder->getQueryString());
}
protected function createFormFor(string $action, $entity, ?string $formClass = null, array $formOptions = []): FormInterface protected function createFormFor(string $action, $entity, ?string $formClass = null, array $formOptions = []): FormInterface
{ {
// for "new", add special config // for "new", add special config
@ -304,6 +277,33 @@ class UserController extends CRUDController
return parent::generateTemplateParameter($action, $entity, $request, $defaultTemplateParameters); return parent::generateTemplateParameter($action, $entity, $request, $defaultTemplateParameters);
} }
protected function getQueryResult(
string $action,
Request $request,
int $totalItems,
PaginatorInterface $paginator,
?FilterOrderHelper $filterOrder = null
) {
if (0 === $totalItems) {
return [];
}
if (!$filterOrder instanceof FilterOrderHelper) {
return parent::getQueryResult($action, $request, $totalItems, $paginator, $filterOrder);
}
if (null === $filterOrder->getQueryString()) {
return parent::getQueryResult($action, $request, $totalItems, $paginator, $filterOrder);
}
return $this->userRepository->findByUsernameOrEmail(
$filterOrder->getQueryString(),
['usernameCanonical' => 'ASC'],
$paginator->getItemsPerPage(),
$paginator->getCurrentPageFirstItemNumber()
);
}
protected function onPrePersist(string $action, $entity, FormInterface $form, Request $request) protected function onPrePersist(string $action, $entity, FormInterface $form, Request $request)
{ {
// for "new", encode the password // for "new", encode the password

View File

@ -98,7 +98,7 @@ final class UserRepository implements ObjectRepository
} }
foreach ($orderBy as $field => $order) { foreach ($orderBy as $field => $order) {
$qb->addOrderBy('u.'.$field, $order); $qb->addOrderBy('u.' . $field, $order);
} }
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
@ -186,7 +186,6 @@ final class UserRepository implements ObjectRepository
->add($qb->expr()->like('u.usernameCanonical', 'CONCAT(\'%\', LOWER(UNACCENT(:pattern)), \'%\')')) ->add($qb->expr()->like('u.usernameCanonical', 'CONCAT(\'%\', LOWER(UNACCENT(:pattern)), \'%\')'))
->add($qb->expr()->like('u.emailCanonical', 'CONCAT(\'%\', LOWER(UNACCENT(:pattern)), \'%\')')); ->add($qb->expr()->like('u.emailCanonical', 'CONCAT(\'%\', LOWER(UNACCENT(:pattern)), \'%\')'));
$qb $qb
->where($searchByPattern) ->where($searchByPattern)
->setParameter('pattern', $pattern); ->setParameter('pattern', $pattern);