public function create() { $grid = new Grid(); $grid->model = $this->clientFacade->createDSDoctrine(); $grid->addColumnText('name', 'Name')->setCustomRender(function ($item) { $href = $this->linkGenerator->link('Backend:Clients:update', array('id' => $item->id)); return "<a href ='" . $href . "'>" . $item->name . "</a>"; /* $el = Html::el('a'); // $item represents whole row. So you can get here any filed you want. $el->setText($item->name); $el->addAttributes(array('target'=>"_blank")); $el->href = $this->linkGenerator->link( 'Backend:Clients:product', // this is how you can generate any link MODULE_NAME:PRESENTER_NAME:ACTION_NAME array( // here is a place for path parameters. FE: here you are expecting /admin/<presenter>/<action>[/<id>] // id is a parameter we can set here. FYI [/<id>] means that id is not required parameter, it can be NULL. 'id' => $item->id ) ); return $el;*/ })->setSortable()->setFilterNumber(); $grid->addColumnText('product', 'Product')->setCustomRender(function ($item) { return $item->product->name; })->setSortable()->setFilterText()->setSuggestion(); $grid->addColumnText('address', 'Address')->setSortable()->setFilterText()->setSuggestion(); $grid->addActionHref('update', 'Update')->setIcon('pencil'); $grid->addActionEvent('delete', 'Delete', function ($item) { $this->clientFacade->delete($item); })->setIcon('trash-o')->setConfirm(function ($item) { return "Are you sure you want to delete {$item->name}?"; }); return $grid; }
/** * @return \Grido\Grid */ protected function createComponentTable() { $table = new Grid(); $table->setModel(new ArraySource($this->getFiles())); $table->addColumnText('id', 'Link')->setSortable()->getCellPrototype()->width = '70%'; $table->addColumnDate('date', 'Date', 'Y.m.d H:i:s')->setSortable()->getCellPrototype()->width = '30%'; $event = $table->addActionEvent('show', 'Show'); $event->onClick[] = $this->handleShow; $event = $table->addActionEvent('delete', 'Delete'); $event->getElementPrototype()->class[] = 'ajax'; $event->onClick[] = $this->handleDelete; $event->setConfirm(function () { return 'Really delete?'; }); return $table; }
/** * @return \Grido\Grid */ protected function createComponentTable() { $table = new Grid(); $table->setModel(new ArraySource($this->workerManager->getWorkers())); $table->addColumnText('id', 'ID')->getCellPrototype()->width = '40%'; $table->addColumnText('state', 'State')->setCustomRender(function ($data) { $lastCheck = \DateTime::createFromFormat('Y-m-d H:i:s', $data['lastCheck']); $lastCheck->modify('+' . ($this->workerManager->getInterval() + 7) . ' second'); return $lastCheck < new \DateTime() ? 'break' : $data['state']; })->getCellPrototype()->width = '20%'; $table->addColumnText('lastCheck', 'Last check')->getCellPrototype()->width = '30%'; $table->addColumnText('lastJob', 'Last job')->getCellPrototype()->width = '30%'; $table->addActionEvent('debug', 'Debug')->onClick[] = $this->tableDebugClick; $table->addActionEvent('restart', 'Restart')->onClick[] = $this->tableRestartClick; $table->addActionEvent('stop', 'Stop')->onClick[] = $this->tableStopClick; return $table; }
protected function setupGrid(Grid $grid) { $grid->addColumnText('name', 'Name')->setSortable()->setFilterText()->setSuggestion(); $grid->addColumnText('content', 'Content')->setCustomRender($this->renderContent)->setSortable()->setFilterText(); $grid->addColumnBoolean('active', 'Active')->setSortable()->setFilterSelect(['' => '', 1 => 'Yes', 0 => 'No']); $grid->addActionHref('update', 'Update')->setIcon('pencil'); $grid->addActionEvent('delete', 'Delete', $this->delete)->setIcon('trash-o')->setConfirm(function ($item) { return "Are you sure you want to delete {$item->name}?"; }); }
protected function setupGrid(Grid $grid) { $grid->addColumnText('name', 'Name')->setSortable()->setFilterText()->setSuggestion(); $grid->addColumnEmail('email', 'Email')->setSortable()->setFilterText()->setSuggestion(); $grid->addColumnText('role', 'Role')->setSortable()->setFilterText()->setSuggestion(); $grid->addActionHref('update', 'Update')->setIcon('pencil'); $grid->addActionEvent('delete', 'Delete', $this->delete)->setIcon('trash-o')->setConfirm(function ($item) { return "Are you sure you want to delete {$item->name}?"; }); }
/** * @param $name * @return Grid */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->sliderRepository->getAll(); $grid->model = $fluent; $grid->addColumnText('imgName', 'Obrázek')->setCustomRender(function ($item) { $img = Html::el('img')->src($item->imgName)->width('200'); return $img; }); $grid->addColumnText('imgTitle', 'Titulek')->setSortable()->setFilterText(); $grid->getColumn('imgTitle')->headerPrototype->style['width'] = '20%'; $grid->addColumnText('imgDescription', 'Popisek')->setSortable()->setFilterText(); $grid->getColumn('imgDescription')->headerPrototype->style['width'] = '40%'; $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("delete!", $item->id))->setHtml($i); return $el; }); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @param $name * @return Grid * @throws \Grido\Exception */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->newsRepository->getAll(); $grid->model = $fluent; $grid->addColumnText('title', 'Titulek')->setSortable()->setFilterText(); $grid->getColumn('title')->headerPrototype->style['width'] = '65%'; $grid->addColumnDate('dateAdd', 'Datum')->setSortable()->setFilterText(); $grid->addColumnText('active', 'Aktivní')->setCustomRender(function ($item) { if ($item->active === 0) { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-down']); $el = Html::el('a', ['class' => 'btn btn-danger btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } else { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-up']); $el = Html::el('a', ['class' => 'btn btn-success btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } return $el; })->cellPrototype->class[] = 'center'; $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("delete!", $item->id))->setHtml($i); return $el; }); $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->setDefaultSort(['dateAdd' => 'DESC']); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @param $name * @return Grid */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->pagesRepository->getAll(); $pages = []; foreach ($fluent as $pageRow) { $pages[$pageRow->id] = $pageRow; } if (isset($grid->model)) { $grid->model = $fluent; } $grid->addColumnNumber('id', 'ID'); $header = $grid->getColumn('id')->headerPrototype; $header->style['width'] = '0.5%'; $grid->addColumnText('name', 'Název')->setFilterText()->setSuggestion(); $grid->getColumn('name')->headerPrototype->style['width'] = '80%'; $grid->addColumnText('active', 'Aktivní')->setCustomRender(function ($item) { if ($item->active == 0) { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-down']); $el = Html::el('a', ['class' => 'btn btn-danger btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } else { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-up']); $el = Html::el('a', ['class' => 'btn btn-success btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } return $el; })->cellPrototype->class[] = 'center'; $grid->addColumnText('inMenu', 'Top menu')->setCustomRender(function ($item) { $menuItems = (array) json_decode($item->inMenu); if (!in_array('topMenu', $menuItems)) { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-down']); $el = Html::el('a', ['class' => 'btn btn-danger btn-xs btn-mini ajax'])->href($this->presenter->link("inTopMenu!", $item->id))->setHtml($i); } else { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-up']); $el = Html::el('a', ['class' => 'btn btn-success btn-xs btn-mini ajax'])->href($this->presenter->link("inTopMenu!", $item->id))->setHtml($i); } return $el; })->cellPrototype->class[] = 'center'; $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { if ($item->parent === 0 || $item->rgt - $item->lft > 1) { $i = Html::el('i', ['class' => 'fa']); $el = Html::el('span', ['class' => 'btn btn-xs btn-mini'])->setHtml($i); } else { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax', 'data-grido-confirm' => "Opravdu chcete tuto položku odstranit?"])->href($this->presenter->link("delete!", $item->id))->setHtml($i); } return $el; }); $grid->addActionEvent('moveup', '')->setCustomRender(function ($item) use($pages) { $first = $item->parent == 0 || $item->lft - 1 == $pages[$item->parent]['lft']; if ($first) { $i = Html::el('i', ['class' => 'fa']); $el = Html::el('span', ['class' => 'btn btn-xs btn-mini'])->setHtml($i); } else { $i = Html::el('i', ['class' => 'fa fa-arrow-up']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("move!", $item->id, self::UP))->setHtml($i); } return $el; }); $grid->addActionEvent('movedn', '')->setCustomRender(function ($item) use($pages) { $last = $item->parent == 0 || $item->rgt + 1 == $pages[$item->parent]['rgt']; if ($last) { $i = Html::el('i', ['class' => 'fa']); $el = Html::el('span', ['class' => 'btn btn-xs btn-mini'])->setHtml($i); } else { $i = Html::el('i', ['class' => 'fa fa-arrow-down']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("move!", $item->id, self::DN))->setHtml($i); } return $el; }); $grid->addActionHref('add', '')->setIcon('plus'); $grid->setDefaultSort(['lft' => 'ASC']); $grid->setRememberState(TRUE); $grid->setPrimaryKey('id'); $grid->setDefaultPerPage(50); $grid->setRowCallback(function ($item, $tr) { $tr->class[] = "level_{$item->level}"; return $tr; }); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @param $name * @return Grid */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->usersRepository->getAll(); $grid->model = $fluent; $grid->addColumnText('username', 'Username')->setSortable()->setFilterText(); $grid->addColumnText('name', 'Name')->setSortable()->setFilterText(); $grid->addColumnText('lastname', 'Lastname')->setSortable()->setFilterText(); $grid->addColumnText('role', 'Role')->setSortable()->setFilterText(); $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { $i = \Nette\Utils\Html::el('i', ['class' => 'fa fa-trash']); $el = \Nette\Utils\Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("delete!", $item->id))->setHtml($i); return $el; }); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @param $name * @return Grid * @throws \Grido\Exception */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->commentsRepository->getAll(); $grid->model = $fluent; $grid->addColumnText('author', 'Autor')->setSortable()->setFilterText(); $grid->addColumnDate('date', 'Datum')->setSortable()->setFilterText(); $grid->addColumnText('allowed', 'Schváleno')->setCustomRender(function ($item) { if ($item['allowed'] === 0) { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-down']); $el = Html::el('a', ['class' => 'btn btn-danger btn-xs btn-mini ajax'])->href($this->presenter->link("allowed!", $item['id']))->setHtml($i); } else { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-up']); $el = Html::el('a', ['class' => 'btn btn-success btn-xs btn-mini ajax'])->href($this->presenter->link("allowed!", $item['id']))->setHtml($i); } return $el; })->cellPrototype->class[] = 'center'; $grid->addColumnText('text', 'Text')->setCustomRender(function ($item) { $el = Html::el('span')->setText(Strings::substring($item['text'], 0, 80)); return $el; }); $grid->getColumn('text')->headerPrototype->style['width'] = '90%'; $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("delete!", $item['id']))->setHtml($i); return $el; }); $grid->setDefaultSort(['date' => 'DESC']); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @param $name * @return Grid */ protected function createComponentGrid($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->articlesRepository->getAll(); $articles = []; foreach ($fluent as $articleRow) { $articles[$articleRow->id] = $articleRow; } if (isset($grid->model)) { $grid->model = $fluent; } $grid->addColumnNumber('id', 'ID'); $header = $grid->getColumn('id')->headerPrototype; $header->style['width'] = '0.5%'; $grid->addColumnText('name', 'Název')->setFilterText()->setSuggestion(); $grid->getColumn('name')->headerPrototype->style['width'] = '40%'; $grid->addColumnText('active', 'Aktivní')->setCustomRender(function ($item) { if ($item->active == 0) { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-down']); $el = Html::el('a', ['class' => 'btn btn-danger btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } else { $i = Html::el('i', ['class' => 'glyphicon glyphicon-thumbs-up']); $el = Html::el('a', ['class' => 'btn btn-success btn-xs btn-mini ajax'])->href($this->presenter->link("active!", $item->id))->setHtml($i); } return $el; })->cellPrototype->class[] = 'center'; $grid->addActionHref('edit', '')->setIcon('pencil'); $grid->addActionEvent('delete', '')->setCustomRender(function ($item) { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax', 'data-grido-confirm' => "Opravdu chcete tuto položku odstranit?"])->href($this->presenter->link("delete!", $item->id))->setHtml($i); return $el; }); $grid->setDefaultSort(['date' => 'DESC']); $grid->setRememberState(true); $grid->setPrimaryKey('id'); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }
/** * @param $name * @return Grid * @throws \Grido\Exception */ protected function createComponentGridPictures($name) { $grid = new Grid($this, $name); $grid->translator->lang = 'cs'; $fluent = $this->picturesRepository->getAllWhere(['galleryId' => $this->getParameter('id')]); $grid->model = $fluent; $grid->addColumnText('id', 'ID')->setSortable(); $grid->getColumn('id')->headerPrototype->style['width'] = '1%'; $grid->addColumnText('name', 'Název')->setSortable()->setFilterText(); $grid->getColumn('name')->headerPrototype->style['width'] = '25%'; $grid->addColumnText('file', 'Soubor')->setSortable()->setFilterText(); $grid->getColumn('file')->headerPrototype->style['width'] = '40%'; $grid->addActionHref('editPicture', '')->setIcon('pencil'); $grid->addActionEvent('deletePicture', '')->setCustomRender(function ($item) { $i = Html::el('i', ['class' => 'fa fa-trash']); $el = Html::el('a', ['class' => 'btn btn-default btn-xs btn-mini ajax'])->href($this->presenter->link("deletePicture!", $item->id))->setHtml($i); return $el; }); $grid->setDefaultPerPage(50); $grid->filterRenderType = $this->filterRenderType; $grid->setExport(); return $grid; }