/** * Component factory for Roles administration grid * @param string $name */ public function createComponentRolesGrid($name) { $grid = new \Grido\Grid($this, $name); $grid->setModel($this->roleService->getRolesDatasource()); $grid->addColumnNumber('id', '#')->cellPrototype->class[] = 'center'; $headerId = $grid->getColumn('id')->headerPrototype; $headerId->class[] = 'center'; $headerId->rowspan = "2"; $headerId->style['width'] = '0.1%'; $grid->addColumnText('name', 'Jméno')->setSortable()->setFilterText(); $grid->getColumn('name')->getEditableControl()->setRequired('Name is required.'); $headerName = $grid->getColumn('name')->headerPrototype; $headerName->class[] = 'center'; $grid->addColumnText('parents', 'Rodiče')->setSortable()->setFilterText(); $grid->getColumn('parents')->setCustomRender(callback($this, 'roleParColToString')); $headerParent = $grid->getColumn('parents')->headerPrototype; $headerParent->class[] = 'center'; $grid->addColumnDate('added', 'Přidáno')->setSortable(); $headerAdded = $grid->getColumn('added')->headerPrototype; $headerAdded->class[] = 'center'; $grid->addColumnText('note', 'Poznámka')->setCustomRender($this->noteGridRender)->setSortable()->setTruncate(20)->setFilterText(); $headerNote = $grid->getColumn('note')->headerPrototype; $headerNote->class[] = 'center'; $grid->addActionHref('delete', '', 'deleteRole!')->setIcon('trash')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("securityModule.admin.grid.delete")]))->setConfirm(function ($u) { return $this->tt("securityModule.admin.grid.rlyDeleteRole", null, ["pos" => $u]); }); $grid->addActionHref('edit', '', 'updateRole')->setIcon('pencil')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("securityModule.admin.grid.update")])); $grid->setOperation(["delete" => $this->tt("system.common.delete")], $this->roleGridOpsHandler); $grid->setFilterRenderType($this->filterRenderType); $grid->setExport("admin-roles " . date("Y-m-d H:i:s", time())); }