Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php declare(strict_types = 1);
- namespace App\AdminModule\Components\Category;
- use App\Model\CategoryModel;
- use Nette\Application\UI\Control;
- use Ublaboo\DataGrid\DataGrid;
- final class CategoryControl extends Control
- {
- /** @var CategoryModel */
- private $categoryModel;
- public function __construct(CategoryModel $categoryModel)
- {
- $this->categoryModel = $categoryModel;
- }
- public function render(): void
- {
- $this->template->render(__DIR__ . '/templates/category.latte');
- }
- public function createComponentCategoryGrid(string $name)
- {
- $grid = new DataGrid($this, $name);
- $grid->setRememberState(false);
- $grid->setTemplateFile(__DIR__ . '/../templates/datagrid.latte');
- $grid->setPrimaryKey('category_id');
- $grid->setDataSource($this->categoryModel->getAll());
- $grid->setTreeView([$this, 'getChildren'], 'hasChildren');
- $grid->addColumnText('name', 'Názov');
- $grid->addColumnDateTime('created', 'Vytvorený');
- $grid->addColumnText('state', 'Stav')
- ->setFitContent(false)
- ->setTemplate(__DIR__ . '/../templates/state.latte');
- $grid->addAction('Categories:edit', 'Upraviť')
- ->setClass('btn btn-xs btn-primary');
- $grid->addToolbarButton('Categories:add', 'Pridať kategóriu')->setClass('btn btn-xs btn-success');
- return $grid;
- }
- public function getChildren($parentId) {
- return $this->categoryModel->getAll()->where('parent_id',$parentId);
- }
- public function hasChildren($parentId) {
- return $this->categoryModel->getAll()->where('parent_id',$parentId)->count() > 0 ? true : false;
- }
- public function handleOpen(): void
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement