protected function createGrid() { $grid = $this->createPreparedGrid(); $grid->setModel($this->getModel()); $grid->addColumnNumber('id', 'ID')->setSortable()->setFilterNumber(); $grid->addColumnText('username', 'Přihlašovací jméno')->setSortable()->setDefaultSort('asc')->setFilterText(); $grid->addColumnText('name', 'Jméno')->setSortable()->setFilterText(); $grid->addColumnText('surname', 'Příjmení')->setSortable()->setFilterText(); $grid->addColumnText('email', 'Email')->setCustomRender(function ($row) { if (Strings::length($row->email) <= 0) { return ''; } return Html::el('a')->setText($row->email)->href('mailto:' . $row->email); })->setSortable()->setFilterText()->setColumn('user.email'); $section = $grid->addColumnText('section', 'Sekce'); $this->helpers->setupAsMultirecord($section, function ($row) { $selection = $this->sectionFacade->all(); $this->userFilter->filterId($selection, $row->id, ':user_has_section'); $selection->select("section.id,section.name"); return $selection->fetchPairs('id', 'name'); }); $role = $grid->addColumnText('role', 'Role'); $this->helpers->setupAsMultirecord($role, function ($row) { $selection = $this->roleFacade->all(); $this->userFilter->filterId($selection, $row->id, ':user_has_role'); $selection->select("role.code,role.name"); return $selection->fetchPairs('code', 'name'); }); $this->helpers->addEditAction($grid); $this->helpers->addDeleteEvent($grid, $this->deleteRow, function ($row) { return $row->surname . ' ' . $row->name; }); return $grid; }
/** * @param string $role * @return boolean */ protected function findIsSuperRole($role) { $context = $this->roleFacade->all(); $roleRecord = $this->roleFilter->filterId($context, $role)->select('super')->fetch(); if (!$roleRecord) { return false; } return (bool) $roleRecord->super; }
/** * Kontrola - uživatel musí mít sekci, v případě že není superadmin * @param \Nette\Application\UI\Form $form */ private function checkSectionBindins(Form $form) { $sections = $form['elections']['section']->getValue(); if (count($sections)) { return; } $roles = $form['elections']['role']->getValue(); $record = $this->roleFacade->all()->where('super=1 AND code', $roles)->fetch(); if ($record) { return; } $form->addError('Uživatel, který není superadmin, musí mít zvolenu sekci'); }
/** * @return \Nette\Database\Table\Selection */ private function getModel() { return $this->roleFacade->all(); }
/** * @param code $primary * @return \Nette\Database\Table\Selection */ private function getRoleData($primary) { return $this->roleFilter->filterId($this->roleFacade->all(), $primary); }
/** * @return array */ private function getItems() { return $this->roleFacade->all()->fetchPairs('code', 'name'); }
private function getRoleName($id) { return $this->roleFilter->filterId($this->roleFacade->all(), $id)->fetch()->name; }