Пример #1
0
 public function testViewWithoutBatchForm()
 {
     $this->parameterResolver->expects($this->once())->method('resolveApi')->will($this->returnValue(false));
     $event = $this->createViewEventMock();
     $event->expects($this->once())->method('getView')->will($this->returnValue($view = $this->createViewMock()));
     $view->expects($this->once())->method('getData')->will($this->returnValue(['grid' => $gridView = $this->createGridViewMock()]));
     $this->formFactory->expects($this->once())->method('create')->with($this->identicalTo(GridBatchType::class), $this->isNull(), $this->identicalTo(['grid' => $gridView]))->will($this->returnValue($batchForm = $this->createFormMock()));
     $batchForm->expects($this->once())->method('createView')->will($this->returnValue($batchFormView = $this->createFormViewMock()));
     $gridView->expects($this->once())->method('setBatchForm')->with($this->identicalTo($batchFormView));
     $view->expects($this->once())->method('setTemplateVar')->with($this->identicalTo('grid'))->will($this->returnSelf());
     $view->expects($this->once())->method('setData')->with($this->identicalTo($gridView));
     $this->subscriber->onView($event);
 }
Пример #2
0
 /**
  * @param ViewEvent $event
  */
 public function onView(ViewEvent $event)
 {
     if ($this->getParameterResolver()->resolveApi()) {
         return;
     }
     $view = $event->getView();
     $data = $grid = $view->getData();
     if (is_array($data) && isset($data['grid']) && $data['grid'] instanceof GridViewInterface) {
         $grid = $data['grid'];
     }
     if (!$grid instanceof GridViewInterface) {
         return;
     }
     if ($grid->getBatchForm() === null) {
         $batchForm = !isset($data['batch_form']) || !$data['batch_form'] instanceof FormInterface ? $this->formFactory->create(GridBatchType::class, null, ['grid' => $grid]) : $data['batch_form'];
         $grid->setBatchForm($batchForm->createView());
     }
     $themes = $this->getParameterResolver()->resolveThemes();
     if (!empty($themes)) {
         $this->formRenderer->setTheme($grid->getForm(), $themes);
         $this->formRenderer->setTheme($grid->getBatchForm(), $themes);
     }
     $view->setTemplateVar('grid')->setData($grid);
 }