Example #1
0
 /**
  * {@inheritDoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $this->datagrid = $grid;
     if (isset($config['query'])) {
         $queryConfig = array_intersect_key($config, array_flip(['query']));
         $converter = new YamlConverter();
         $this->qb = $converter->parse($queryConfig, $this->em->createQueryBuilder());
     } elseif (isset($config['entity']) && isset($config['repository_method'])) {
         $entity = $config['entity'];
         $method = $config['repository_method'];
         $repository = $this->em->getRepository($entity);
         if (method_exists($repository, $method)) {
             $qb = $repository->{$method}();
             if ($qb instanceof QueryBuilder) {
                 $this->qb = $qb;
             } else {
                 throw new DatasourceException(sprintf('%s::%s() must return an instance of Doctrine\\ORM\\QueryBuilder, %s given', get_class($repository), $method, is_object($qb) ? get_class($qb) : gettype($qb)));
             }
         } else {
             throw new DatasourceException(sprintf('%s has no method %s', get_class($repository), $method));
         }
     } else {
         throw new DatasourceException(get_class($this) . ' expects to be configured with query or repository method');
     }
     if (isset($config['hints'])) {
         $this->queryHints = $config['hints'];
     }
     $grid->setDatasource(clone $this);
 }
 /**
  * {@inheritDoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $queryConfig = array_intersect_key($config, array_flip(['query']));
     $converter = new YamlConverter();
     $this->qb = $converter->parse($queryConfig, $this->em->createQueryBuilder());
     $grid->setDatasource(clone $this);
 }
 function it_processes_a_datasource_with_default_query_builder($manager, DatagridInterface $grid, ProductRepository $repository)
 {
     $config = ['entity' => 'Product'];
     $manager->getRepository('Product')->willReturn($repository);
     $repository->createQueryBuilder([])->shouldBeCalled();
     $grid->setDatasource($this)->shouldBeCalled();
     $this->process($grid, $config);
 }
 /**
  * @param DatagridInterface $grid
  * @param array $config
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $this->grid = $grid;
     if ($pagerParameters = $grid->getParameters()->get('_pager')) {
         $this->requestPagerParameters = $pagerParameters;
     }
     $grid->setDatasource(clone $this);
 }
 /**
  * @return ResultsObject
  */
 protected function getGridData()
 {
     if (null !== $this->gridDataSource) {
         $this->grid->setDatasource(clone $this->gridDataSource);
     } else {
         $this->gridDataSource = clone $this->grid->getDatasource();
     }
     $this->grid->getParameters()->set(PagerInterface::PAGER_ROOT_PARAM, [PagerInterface::PAGE_PARAM => $this->page, PagerInterface::PER_PAGE_PARAM => $this->pageSize]);
     return $this->grid->getData();
 }
 /**
  * {@inheritdoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $this->configuration = $config;
     $queryBuilderConfig = [];
     if (isset($config['repository_method']) && ($method = $config['repository_method'])) {
         if (isset($config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY])) {
             $queryBuilderConfig = $config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY];
         }
     } else {
         $method = 'createQueryBuilder';
     }
     $this->initializeQueryBuilder($method, $queryBuilderConfig);
     $grid->setDatasource(clone $this);
 }
 /**
  * {@inheritdoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $this->configuration = $config;
     if (isset($config['repository_method']) && ($method = $config['repository_method'])) {
         if (isset($config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY])) {
             $this->qb = $this->getRepository()->{$method}($config[ContextConfigurator::REPOSITORY_PARAMETERS_KEY]);
         } else {
             $this->qb = $this->getRepository()->{$method}();
         }
     } else {
         $this->qb = $this->getRepository()->createQueryBuilder('o');
     }
     $grid->setDatasource(clone $this);
 }
Example #8
0
 /**
  * {@inheritDoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $this->query = new IndexerQuery($this->indexer, $this->indexer->select());
     $grid->setDatasource(clone $this);
 }
Example #9
0
 /**
  * {@inheritDoc}
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $parameters = $grid->getParameters();
     $this->object = $this->routingHelper->getEntity($parameters->get('entityClass'), $parameters->get('entityId'));
     $grid->setDatasource(clone $this);
 }
 /**
  * @param DatagridInterface $grid
  * @param array $config
  */
 public function process(DatagridInterface $grid, array $config)
 {
     $grid->setDatasource(clone $this);
 }