/** * Handle options * * @param GridInterface $grid * @param Datagrid $datagrid * * @return void */ protected function handleOptions(GridInterface $grid, Datagrid $datagrid) { $resolver = new OptionsResolver(); $this->setDefaultOptions($resolver); $grid->configureOptions($resolver); $datagrid->setOptions($resolver->resolve()); }
public function testCreateExportObject() { $this->factory->shouldReceive('createPHPExcelObject')->andReturn(new PHPExcel()); $column = new Column(); $column->setLabel('Label'); $datagrid = new Datagrid(); $datagrid->addColumn($column); $export = new ExcelExport($this->factory); $exportObject = $export->createExportObject($datagrid); $this->assertInstanceOf('PHPExcel', $exportObject); $this->assertEquals('Label', $exportObject->getActiveSheet()->getCell('A1')->getValue()); }
/** * @inheritdoc */ public function createExportObject(Datagrid $datagrid) { $this->phpExcel = $this->factory->createPHPExcelObject(); $this->phpExcel->setActiveSheetIndex(0); $this->phpExcel->getActiveSheet()->setTitle('Datagrid export'); // Set the column headers $c = 'A'; foreach ($columns = $datagrid->getColumns() as $column) { $this->phpExcel->getActiveSheet()->setCellValue($c . '1', $column->getLabel()); $c++; } return $this->phpExcel; }
/** * Handle a ListView form * * @param Request $request * @param Datagrid $datagrid * * @return \Symfony\Component\Form\FormView */ public function handleForm(Request $request, Datagrid $datagrid) { // Clone the view, so the current view won't get changed by the empty view form $view = clone $datagrid->getView(); $columns = $this->entityHelper->getAllProperties($view->getEntity()); $type = new ListViewType($datagrid->getSource(), $columns); $viewForm = $this->formFactory->create($type, $view); $viewForm->handleRequest($request); if ($viewForm->get('save')->isClicked()) { if ($viewForm->isValid()) { $this->save($view); $request->request->set('view', $view->getSlug()); } else { throw new \Exception('The view could not be saved because the form was invalid.'); } } return $viewForm->createView(); }
/** * Determine what rows to use, based on the view */ public function getRowQuery() { $viewBuilder = $this->container->get('opifer.crud.view_builder'); $source = $this->datagrid->getSource(); if ($filterfields = $this->getRequest()->get('filterfields')) { $qb = $viewBuilder->any($source, $filterfields); } elseif ($this->getRequest()->get('view')) { $qb = $viewBuilder->getRowQuery($this->datagrid->getView()->getConditions(), $source); } elseif (($postVars = $this->getRequest()->request->get('listview')) && $postVars['conditions'] != '') { $conditions = $this->container->get('jms_serializer')->deserialize($postVars['conditions'], 'Opifer\\RulesEngine\\Rule\\Rule', 'json'); $qb = $viewBuilder->getRowQuery($conditions, $source); } else { $sourceRepository = $this->container->get('doctrine')->getRepository(get_class($source)); $qb = $sourceRepository->createQueryBuilder('a'); } foreach ($this->mapper->getWheres() as $where) { $qb->andWhere($where); } foreach ($this->mapper->getParameters() as $parameter => $value) { $qb->setParameter($parameter, $value); } return $this->sortRows($qb); }