Exemple #1
0
 /**
  * Component factory of UsersGrid
  * @param string $name
  * @return \Grido\Grid
  */
 public function createComponentUsersGrid($name)
 {
     $grid = new Grid($this, $name);
     $grid->setModel($this->userService->getUsersDatasource());
     $grid->translator->lang = $this->getLocale();
     $grid->setDefaultPerPage(30);
     $grid->setPrimaryKey('id');
     $grid->addColumnNumber('id', '#')->cellPrototype->class[] = 'center';
     $headerId = $grid->getColumn('id')->headerPrototype;
     $headerId->class[] = 'center';
     $headerId->rowspan = "2";
     $headerId->style['width'] = '0.1%';
     $grid->addColumnText('surname', 'Příjmení')->setSortable()->setFilterText();
     $headerSurname = $grid->getColumn('surname')->headerPrototype;
     $headerSurname->class[] = 'center';
     $grid->addColumnText('name', 'Jméno')->setSortable()->setFilterText();
     $headerName = $grid->getColumn('name')->headerPrototype;
     $headerName->class[] = 'center';
     //	$grid->addFilterCustom('nameOrSurname', new \Nette\Forms\Controls\TextArea('Jméno nebo příjmení'))
     //		->setColumn('name')
     //		->setColumn('surname', \Grido\Components\Filters\Condition::OPERATOR_OR)
     //		->setCondition('LIKE ?')
     //		->setFormatValue('%%value%');
     //$grid->getColumn('name')->getCellPrototype()->class('textleft');
     $y = $this->tt("system.common.yes");
     $n = $this->tt("system.common.no");
     $activeList = [null => null, true => $y, false => $n];
     $grid->addColumnNumber('active', 'Aktivní')->setReplacement([true => $y, null => $n])->setSortable()->setFilterSelect($activeList);
     $headerActive = $grid->getColumn('active')->headerPrototype;
     $headerActive->class[] = 'center';
     $grid->addColumnDate('lastLogin', 'Posl. přihl.', self::DATETIME_FORMAT)->setSortable()->setReplacement([NULL => $this->tt("usersModule.admin.grid.never")])->setFilterDateRange();
     $headerLast = $grid->getColumn('lastLogin')->headerPrototype;
     $headerLast->class[] = 'center';
     $grid->addColumnDate('created', 'Registrován')->setSortable();
     $headerCreated = $grid->getColumn('created')->headerPrototype;
     $headerCreated->class[] = 'center';
     $grid->addActionHref("regenPassword", "", 'regenPassword!')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("usersModule.admin.grid.pwRegen")]))->setIcon('lock')->setConfirm(function ($u) {
         return "Are you sure you want to regenerate password for user {$u->surname} {$u->name} ({$u->id})?";
     });
     $grid->addActionHref('delete', '', "deleteUser!")->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("usersModule.admin.grid.delete")]))->setIcon('trash')->setConfirm(function ($u) {
         return "Are you sure you want to delete user {$u->surname} {$u->name} ({$u->id})?";
     });
     $grid->addActionHref('update', '', 'updateUser')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("usersModule.admin.grid.update")]))->setIcon('pencil');
     $grid->addActionHref('webProfile', '', 'updateWebProfile')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("usersModule.admin.grid.updateWp")]))->setIcon('th-list');
     $operation = array('delete' => 'Delete', 'activeToggle' => 'ActiveToggle');
     $grid->setOperation($operation, $this->usersGridOperationsHandler)->setConfirm('delete', $this->tt("usersModule.admin.grid.reallyDeleteItems"));
     $grid->setFilterRenderType($this->filterRenderType);
     $grid->setExport("admin-users " . date("Y-m-d H:i:s", time()));
     return $grid;
 }