Actions - landrisek/impala GitHub Wiki
Custom action method
Use build statement and overload _actions key to create custom action methods: final class MyBuild implements IBuild { private $linkGenerator; private $translatorRepository; public function __construct(Nette\Application\LinkGenerator $linkGenerator, Nette\Localization\ITranslator $translatorRepository) { $this->linkGenerator = $linkGenerator; $this->translatorRepository = $translatorRepository; } public function build(array $row): array { $row['_actions'] = ['variants' => ['Attributes' => ['className' => 'fa-hover fa fa-edit', 'href' => $this->linkGenerator->link('Default:Default:edit', [$row['id']]), 'title' => $this->translatorRepository->translate('edit'), 'target' => '_blank'], 'Label' => '', 'Tag' => 'a']]; return $row; }
Enable default edit action method in controller
$this->grid->edit(new Impala\IEdit); or: $this->grid->edit(true);
Enable default delete action method in controller
$this->grid->remove(new Impala\IRemove);
Enable default image delete action method in controller
After adding addGallery statement in ReactForm and adding $this->grid->edit(new Impala\IEdit); you can implement: public function delete(array $image, array $row): array { unlink($this->images . '/' . $image['keyOfYourGalleryComponent'] . '/' . $image['photo'] . self::SUFFIX); $this->imagesRepository->delete($row['id']['Attributes']['value']); return $row; } $this->grid->remove(new Impala\IRemove);
Enable default insert action method in controller
$this->grid->insert(new Impala\IAdd);