protected function buildInternal(AjaxGridWidgetInterface $widget) { $viewModel = new AjaxGridWidgetContentViewModel(); $viewModel->setTemplate('@BluegrassBluesWidget/kendo/kendo.html.twig'); $viewModel->setCount($widget->count()); /** * Configuro las columnas del ViewModel */ $columns = array(); foreach ($widget->getColumns() as $column) { $columns[] = $column->buildViewModel(); } $viewModel->set('columns', $columns); /** * Configuro los items del ViewModel */ $rows = array(); foreach ($widget->getPageIterator() as $itemModel) { $cells = array(); foreach ($widget->getColumns() as $column) { $cells[$column->getName()] = $column->buildCellViewModel($itemModel); } $rows[] = array('cells' => $cells); } $viewModel->setRows($rows); return $viewModel; }
protected function buildInternal(AjaxGridWidgetInterface $widget) { $viewModel = new WidgetViewModel(); $viewModel->setTemplate('@BluegrassBluesWidget/kendo/kendo.html.twig'); $viewModel->setBlockName('bluegrass_blues_ajaxgrid_widget'); $viewModel->set('dataAjaxRequestUrl', $widget->getDataAjaxRequestRoute()->generateUrlWith($this->getUrlGenerator(), UrlGeneratorInterface::ABSOLUTE_PATH)); $viewModel->set('pageSize', $widget->getPageSize()); $viewModel->set('count', $widget->count()); /** * Configuro las columnas del ViewModel */ $columns = array(); foreach ($widget->getColumns() as $column) { $columns[] = $column->buildViewModel(); } $viewModel->set('columns', $columns); return $viewModel; }