public function createComponentEventsGrid($name) { $eventTypes = [null => null] + EventType::getOptions(); $grid = new Grid($this, $name); $grid->setModel($this->eventsService->getEventsDataSource()); $grid->setTranslator($this->getTranslator()); $grid->addColumnNumber('id', '#')->cellPrototype->class[] = 'center'; $headerId = $grid->getColumn('id')->headerPrototype; $headerId->class[] = 'center'; $headerId->rowspan = "2"; $headerId->style['width'] = '0.1%'; $grid->addColumnText('title', 'Titulek')->setTruncate(20)->setSortable()->setFilterText(); $headerTitle = $grid->getColumn('title')->headerPrototype; $headerTitle->class[] = 'center'; $grid->addColumnText('eventType', 'Typ')->setCustomRender($this->typeRender)->setSortable()->setFilterSelect($eventTypes); $headerType = $grid->getColumn('eventType')->headerPrototype; $headerType->class[] = 'center'; $grid->addColumnDate('takePlaceSince', 'Od', self::DATETIME_FORMAT)->setSortable()->setFilterDateRange(); $headerSince = $grid->getColumn('takePlaceSince')->headerPrototype; $headerSince->class[] = 'center'; $grid->addColumnDate('takePlaceTill', 'Do', self::DATETIME_FORMAT)->setSortable()->setFilterDateRange(); $headerTill = $grid->getColumn('takePlaceTill')->headerPrototype; $headerTill->class[] = 'center'; $grid->addColumnDate('confirmUntil', 'Potvrdit', self::DATETIME_FORMAT)->setSortable(); $headerDead = $grid->getColumn('confirmUntil')->headerPrototype; $headerDead->class[] = 'center'; $grid->addActionHref('delete', '', 'deleteEvent!')->setIcon('trash')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("eventsModule.grid.deleteEvent")]))->setConfirm(function ($u) { return $this->tt("eventsModule.admin.grid.rlyDelEvent", null, ["id" => $u->getId()]); }); $grid->addActionHref("participation", "", "updateParticipation")->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("eventsModule.grid.updateParticipation")]))->setIcon("list-alt"); $grid->addActionHref('edit', '', 'updateEvent')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("eventsModule.grid.updateEvent")]))->setIcon('pencil'); $grid->setOperation(["delete" => "Delete"], $this->eventsGridOperationHandler)->setConfirm('delete', 'Are you sure you want to delete %i items?'); $grid->setFilterRenderType($this->filterRenderType); $grid->setExport("admin-events" . date("Y-m-d H:i:s", time())); }