示例#1
0
 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;
 }
示例#2
0
 /**
  * @param \Nette\Application\UI\Form $form
  */
 private function checkUsername(Form $form)
 {
     $username = $form['base']['username']->getValue();
     $user = $this->userFilter->filterUsername($this->userFacade->all(), $username)->fetch();
     if (!$user) {
         return;
     }
     if (!($user->id == $this->id)) {
         $form->addError('Zadaný login již existuje, zadejte prosím jiný');
     }
 }
 /**
  * @param $id
  * @return array
  */
 protected function getSections($id)
 {
     $selection = $this->userFilter->filterId($this->userFacade->all(), $id);
     $selection->select(':user_has_section.section.id');
     return $selection->fetchPairs('id', 'id');
 }
 /**
  * @param $id
  * @param int[] $setIds
  */
 public function setSection($id, $setIds)
 {
     $current = $this->userFilter->filterId($this->all(), $id)->select(':user_has_section.section.id')->fetchPairs('id', 'id');
     $this->userRepository->reassignSection($id, $setIds, $current);
 }
 /**
  * @param $email
  * @return \Nette\Database\Table\Selection
  */
 public function email($email)
 {
     return $this->userFilter->filterEmail($this->all(), $email);
 }