vendor/ibexa/form-builder/src/lib/Tab/Event/Subscriber/SubmissionsTabSubscriber.php line 47

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. declare(strict_types=1);
  7. namespace Ibexa\FormBuilder\Tab\Event\Subscriber;
  8. use Ibexa\AdminUi\Tab\Event\TabEvent;
  9. use Ibexa\AdminUi\Tab\Event\TabEvents;
  10. use Ibexa\FormBuilder\Tab\LocationView\SubmissionsTab;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. use Symfony\Component\HttpFoundation\RequestStack;
  13. /**
  14.  * Fetches parameters needed by pagination from the RequestStack.
  15.  */
  16. class SubmissionsTabSubscriber implements EventSubscriberInterface
  17. {
  18.     /** @var \Symfony\Component\HttpFoundation\RequestStack */
  19.     private $requestStack;
  20.     /**
  21.      * @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
  22.      */
  23.     public function __construct(
  24.         RequestStack $requestStack
  25.     ) {
  26.         $this->requestStack $requestStack;
  27.     }
  28.     /**
  29.      * @return array
  30.      */
  31.     public static function getSubscribedEvents(): array
  32.     {
  33.         return [
  34.             TabEvents::TAB_PRE_RENDER => ['onTabPreRender'],
  35.         ];
  36.     }
  37.     /**
  38.      * @param \Ibexa\AdminUi\Tab\Event\TabEvent $tabEvent
  39.      */
  40.     public function onTabPreRender(TabEvent $tabEvent): void
  41.     {
  42.         $tab $tabEvent->getData();
  43.         if (!$tab instanceof SubmissionsTab) {
  44.             return;
  45.         }
  46.         $parameters $tabEvent->getParameters();
  47.         $request $this->requestStack->getMainRequest();
  48.         $paginationParams = [
  49.             'route_name' => $request->get('_route'),
  50.             'route_params' => $request->get('_route_params'),
  51.             'page' => $request->get('page')['submission'] ?? 1,
  52.         ];
  53.         $tabEvent->setParameters($parameters + ['paginationParams' => $paginationParams]);
  54.     }
  55. }
  56. class_alias(SubmissionsTabSubscriber::class, 'EzSystems\EzPlatformFormBuilder\Tab\Event\Subscriber\SubmissionsTabSubscriber');