src/EventSubscriber/EasyAdminSubscriber.php line 26

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace App\EventSubscriber;
  3. use App\Entity\Lead;
  4. use App\Service\ChartProvider;
  5. use EasyCorp\Bundle\EasyAdminBundle\Event\AfterCrudActionEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class EasyAdminSubscriber implements EventSubscriberInterface
  8. {
  9.     private $chartProvider;
  10.     public function __construct(ChartProvider $chartProvider)
  11.     {
  12.         $this->chartProvider $chartProvider;
  13.     }
  14.     public static function getSubscribedEvents()
  15.     {
  16.         return [
  17.             AfterCrudActionEvent::class => ['setChart'],
  18.         ];
  19.     }
  20.     public function setChart(AfterCrudActionEvent $event)
  21.     {
  22.         $fqcn $event->getAdminContext()->getEntity()->getFqcn();
  23.         if (Lead::class !== $fqcn) {
  24.             return;
  25.         }
  26.         $responseParameters $event->getResponseParameters();
  27.         if (!$entities $responseParameters->get('entities')) {
  28.             return;
  29.         }
  30.         $event->addResponseParameters([
  31.             'chart' => $this->chartProvider->getFilteredLeadChart($entities)
  32.         ]);
  33.     }
  34. }