protected function createComponentGrid($name) { $grid = new \App\Grids\baseGrid($this, $name); $grid->model = $this->model; $grid->addColumnText('firstname', 'Jméno')->setSortable()->setFilterText(); $grid->addColumnText('lastname', 'Příjmení')->setSortable()->setFilterText(); $grid->addColumnText('gender', 'Pohlaví')->setSortable()->setReplacement($grid::$genderReplacements)->setFilterSelect($grid::$genderFilters); $grid->addColumnDate('birthdate', 'Narození')->setSortable()->setFilterDate(); $grid->addColumnText('email', 'Email')->setSortable()->setFilterText(); $grid->addColumnText('imap_username', 'Školní login')->setSortable()->setFilterText(); $grid->addColumnText('facebook_id', 'Facebook')->setSortable()->setFilterText(); $grid->addColumnText('active', 'Aktivní')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters); $grid->addColumnText('enabled', 'Povolený')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters); $grid->addActionHref("id", "Detail"); $grid->addActionHref("delete", "Odstranit")->setConfirm(function ($item) { return "Opravdu chcete odstranit uživatele {$item->firstname} {$item->lastname}?"; }); $grid->addActionHref('activate', 'Aktivovat')->setDisable(function ($item) { return $item->active == 1; }); $grid->addActionHref('deactivate', 'Deaktivovat')->setDisable(function ($item) { return $item->active == 0; }); $grid->addActionHref('enable', 'Povolit')->setDisable(function ($item) { return $item->enabled == 1; }); $grid->addActionHref('disable', 'Zablokovat')->setDisable(function ($item) { return $item->enabled == 0; }); $operations = array('delete' => 'Odstranit', 'enable' => 'Povolit', 'disable' => 'Zablokovat'); $grid->setOperation($operations, $this->gridOperationsHandler)->setConfirm('delete', 'Opravdu chcete smazat všech %i uživatelů?'); $grid->setDefaultSort(array('lastname' => 'ASC')); return $grid; }
protected function createComponentGrid($name) { $grid = new \App\Grids\baseGrid($this, $name); if ($this->user->isInRole("administrator") || $this->user->isInRole("teacher")) { $grid->model = $this->model; } else { $grid->model = $this->model->getSelection()->where("user_id = " . $this->user->id); } $grid->addColumnText('wrk_name', 'Název')->setSortable()->setFilterText(); $grid->addColumnText('firstname', 'Jméno autora')->setSortable()->setFilterText(); $grid->addColumnText('lastname', 'Příjmení autora')->setSortable()->setFilterText(); $grid->addColumnText('class', 'Třída')->setSortable()->setFilterText(); $grid->addColumnText('year', 'Školní rok')->setSortable()->setFilterText(); $grid->addColumnText('set_name', 'Sada prací')->setSortable()->setFilterText(); $grid->addColumnText('status', 'Stav')->setSortable()->setReplacement($this->statuses)->setFilterSelect($this->statuses); $grid->addColumnDate('created_date', 'Vytvořeno')->setSortable()->setFilterDate(); $grid->addActionHref("id", "Detail"); $grid->addActionHref("application", "Přihláška"); $grid->addActionHref("delete", "Odstranit")->setConfirm(function ($item) { return "Opravdu chcete odstranit zadání práce {$item->name}?"; })->setDisable(function ($item) { if ($item->status > 0) { return true; } if (!($this->user->isInRole("administrator") || $this->user->id == $item->created_by)) { return true; } return false; }); $operations = array('delete' => 'Odstranit'); $grid->setOperation($operations, $this->gridOperationsHandler)->setConfirm('delete', 'Opravdu chcete smazat všech %i prací?'); $grid->setDefaultSort(array('name' => 'ASC')); return $grid; }
protected function createComponentGrid($name) { $grid = new \App\Grids\baseGrid($this, $name); if ($this->user->isInRole("manager")) { $grid->model = $this->model; } else { if ($this->user->isInRole("teacher")) { $grid->model = $this->model->getUsersActivity($this->user->id); } } $pks = $this->model->getPKList(); $nothing = array("" => ""); $pks = $nothing + $pks; $grid->addColumnText('fn', 'Jméno')->setSortable()->setFilterText()->setColumn("user.firstname"); $grid->addColumnText('ln', 'Příjmení')->setSortable()->setFilterText()->setColumn("user.lastname"); $grid->addColumnText('pk', 'PK')->setSortable()->setFilterSelect($pks)->setColumn("act_notebooks_id"); $grid->addColumnDate('date', 'Datum')->setSortable()->setFilterText()->setColumn("act_works.date"); $grid->addColumnText('name', 'Název')->setSortable()->setFilterText(); $grid->addColumnText('timeInM', 'Čas (h)')->setSortable()->setFilterText(); $grid->addColumnText('note', 'Poznámka')->setSortable()->setFilterText(); $grid->addColumnText('preapproval', 'Schválená PK')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters); $grid->addColumnText('approval', 'Schválená')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters); $grid->addColumnText('reward', 'Odměna')->setSortable(); $grid->addActionHref("approve", "Schválení")->setDisable(function ($item) { return !($this->model->isWorksPkHead($item->act_notebooks_id, $this->user->id) || $this->user->isInRole("manager")); }); $grid->addActionHref("addact", "Editace")->setDisable(function ($item) { return !($item->created_id == $this->user->id || $this->user->id == $item->user_id) || $this->model->isActivityApproved($item->id); }); $grid->addActionHref("delete", "Smazat")->setDisable(function ($item) { return !($item->created_id == $this->user->id || $this->user->id == $item->user_id) || $this->model->isActivityApproved($item->id); }); $grid->setFilterRenderType(\Grido\Components\Filters\Filter::RENDER_INNER); return $grid; }