function it_gives_the_label_of_a_filter($manager, $configurator, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $configuration)
 {
     $acceptor->getConfig()->willReturn($configuration);
     $datagrid->getAcceptor()->willReturn($acceptor);
     $manager->getDatagrid('product-grid')->willReturn($datagrid);
     $configurator->configure($configuration)->shouldBeCalled();
     $configuration->offsetGetByPath('[filters][columns][foo][label]')->willReturn('Foo');
     $this->filterLabel('foo')->shouldReturn('Foo');
 }
예제 #2
0
 /**
  * Get grid mass action by name
  *
  * @param string           $name
  * @param DatagridInterface $datagrid
  *
  * @return bool|ActionInterface
  */
 public function getMassAction($name, DatagridInterface $datagrid)
 {
     $config = $datagrid->getAcceptor()->getConfig();
     $action = false;
     if (isset($config[static::ACTION_KEY][$name])) {
         $action = $this->getActionObject($name, $config[static::ACTION_KEY][$name]);
     }
     return $action;
 }
 function let(MassActionHandlerRegistry $handlerRegistry, ManagerInterface $manager, RequestParameters $requestParams, MassActionParametersParser $parametersParser, DatagridInterface $grid, Acceptor $acceptor, DatasourceInterface $acceptedDatasource, DatasourceInterface $datasource, QueryBuilder $queryBuilder)
 {
     $this->beConstructedWith($handlerRegistry, $manager, $requestParams, $parametersParser);
     $acceptedDatasource->getQueryBuilder()->willReturn($queryBuilder);
     $grid->getAcceptor()->willReturn($acceptor);
     $grid->getAcceptedDatasource()->willReturn($acceptedDatasource);
     $grid->getDatasource()->willReturn($datasource);
     $manager->getDatagrid('grid')->willReturn($grid);
 }
 function it_configure_choices_and_skip_disallowed($manager, $configurator, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $configuration, OptionsResolver $resolver)
 {
     $acceptor->getConfig()->willReturn($configuration);
     $datagrid->getAcceptor()->willReturn($acceptor);
     $manager->getDatagrid('foo-grid')->willReturn($datagrid);
     $configurator->configure($configuration)->shouldBeCalled();
     $configuration->offsetGetByPath('[filters][columns]')->willReturn(['foobar' => ['label' => 'FooBar'], 'foo-1' => ['label' => 'Foo 1'], 'foo-2' => ['label' => 'Foo 2'], 'bar-1' => ['label' => 'Bar 1'], 'scope' => ['label' => 'Scope'], 'locale' => ['label' => 'Locale']]);
     $configuration->offsetGetByPath('[source][attributes_configuration]')->willReturn(['foo-1' => ['group' => 'foo'], 'foo-2' => ['group' => 'foo'], 'bar-1' => ['group' => 'bar']]);
     $resolver->setDefaults(['choices' => ['System' => ['foobar' => 'FooBar'], 'foo' => ['foo-1' => 'Foo 1', 'foo-2' => 'Foo 2'], 'bar' => ['bar-1' => 'Bar 1']]])->shouldBeCalled();
     $this->configureOptions($resolver);
 }
 function it_applies_when_user_preference_is_filled_and_skip_disallowed($context, UserInterface $user, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $config, BuildAfter $event)
 {
     $config->offsetGet('filters')->willReturn(['columns' => ['foo' => [], 'baz' => [], 'scope' => [], 'locale' => []]]);
     $config->offsetSetByPath('[filters][columns][foo][enabled]', true)->shouldBeCalled();
     $config->offsetSetByPath('[filters][columns][baz][enabled]', false)->shouldBeCalled();
     $config->offsetSetByPath('[filters][columns][bar][enabled]', Argument::any())->shouldNotBeCalled();
     $config->offsetSetByPath('[filters][columns][scope][enabled]', Argument::any())->shouldNotBeCalled();
     $config->offsetSetByPath('[filters][columns][locale][enabled]', Argument::any())->shouldNotBeCalled();
     $user->getProductGridFilters()->willReturn(['foo', 'bar']);
     $context->getUser()->willReturn($user);
     $acceptor->getConfig()->willReturn($config);
     $datagrid->getAcceptor()->willReturn($acceptor);
     $event->getDatagrid()->willReturn($datagrid);
     $this->onBuildAfter($event);
 }
예제 #6
0
 /**
  * @param string            $massActionName
  * @param DatagridInterface $datagrid
  *
  * @return \Oro\Bundle\DataGridBundle\Extension\MassAction\Actions\MassActionInterface
  * @throws LogicException
  */
 protected function getMassActionByName($massActionName, DatagridInterface $datagrid)
 {
     $massAction = null;
     $extensions = array_filter($datagrid->getAcceptor()->getExtensions(), function (ExtensionVisitorInterface $extension) {
         return $extension instanceof MassActionExtension;
     });
     /** @var MassActionExtension|bool $extension */
     $extension = reset($extensions);
     if ($extension === false) {
         throw new LogicException("MassAction extension is not applied to datagrid.");
     }
     $massAction = $extension->getMassAction($massActionName, $datagrid);
     if (!$massAction) {
         throw new LogicException(sprintf('Can\'t find mass action "%s"', $massActionName));
     }
     return $massAction;
 }