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');