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; }
/** * @return \Nette\Database\Table\Selection */ public function getUserSection() { $selection = $this->sectionFacade->all(); if (!$this->user->getIdentity()->super) { $this->sectionFilter->filterId($selection, $this->user->getIdentity()->sections); } return $selection; }
/** * @return array */ protected function getSectionOptions() { $options = []; foreach ($this->sectionFacade->all() as $section) { $options[$section['name']] = $this->getOptions($section['id']); } return $options; }
public function getData() { $selection = $this->sectionFacade->all(); if (!$this->user->getIdentity()->super) { $this->sectionFilter->filterId($selection, $this->user->getIdentity()->sections); } return $selection->fetchPairs('id', 'id'); }
private function loadFrontSection() { $selection = $this->moduleFilter->filterCode($this->sectionFacade->all(), ModuleConst::FRONT); $record = $selection->fetch(); if (!$record) { return; } $this->frontSectionId = (int) $record->id; }
/** * @param $id * @throws \Model\RecordNotFoundException */ public function load($id) { $section = $this->sectionFilter->filterId($this->sectionFacade->all(), $id)->fetch(); if (!$section) { throw new RecordNotFoundException("Section with ID {$id} does not exists!"); } $this->id = $id; $typeCodes = array_keys($this->sectionFacade->getMenuType($id)->fetchPairs('code')); $form = $this['form']; $form['base']->setDefaults($section->toArray()); $form['type']['menu_type_code']->setDefaultValue($typeCodes); }
/** * @return \Admin\Grid */ protected function createGrid() { $grid = $this->createPreparedGrid(); $grid->setModel($this->sectionFacade->all()); $grid->addColumnNumber('id', 'ID')->setSortable()->setFilterNumber(); $grid->addColumnText('domain', 'Doména třetího řádu')->setSortable()->setFilterText(); $grid->addColumnText('model_name', 'Modul')->setColumn('m.name')->setSortable()->setFilterText()->setColumn('m.name'); $grid->addColumnText('name', 'Název sekce')->setSortable()->setFilterText()->setColumn('section.name'); $grid->addColumnText('priority', 'Priorita')->setSortable()->setDefaultSort('ASC')->setFilterNumber()->setColumn('section.priority'); $grid->addActionHref('edit', 'Edit')->setIcon('pencil')->getElementPrototype()->class = 'btn-dark-blue'; $grid->addActionEvent('delete', 'Delete', $this->deleteRow)->setConfirm(function ($item) { return "Opravdu chcete smazat sekci '{$item['name']}'?"; })->setIcon('trash-o')->getElementPrototype()->class = 'btn-danger'; return $grid; }
/** * @return array */ protected function getSections() { if (!$this->sections) { $selection = $this->filterSections($this->sectionFacade->all()); if (!$this->user->getIdentity()->super) { $this->sectionFilter->filterId($selection, $this->user->getIdentity()->sections); } $this->sectionOrderer->order($selection, 'section'); if ($this->moduleGroup) { $selection->select('section.id, module.name'); $selection->group('section.module'); } else { $selection->select('section.id,section.name'); } $this->sections = $selection->fetchPairs('id', 'name'); } return $this->sections; }
/** * @return array */ public function getOptionsWithoutHome() { $context = $this->moduleFilter->filterNotModule($this->sectionFacade->all(), ModuleConst::FRONT); return $this->orderAndFetch($context); }
/** * @return \Nette\Database\Table\Selection */ protected function allSections() { return $this->sectionOrderer->order($this->sectionFacade->all()); }
/** * @param int $pageId * @return array */ function getPageSection($pageId) { $context = $this->sectionFacade->all(); $this->pageFilter->filterId($context, $pageId, ':page_has_section'); return $context->fetchPairs('id', 'id'); }
/** * @return \Nette\Database\Table\Selection */ public function all() { return $this->sectionFilter->filterNotHomeSection($this->sectionFacade->all(), ModuleConst::FRONT); }