/** * @param $filter * * @return $this|self */ public function addFilter(AbstractField $filter) : self { if (!$this->filtersForm) { $this->filtersForm = new Form(); $this->filtersForm->setMethod('GET')->setName($this->stateId ? $this->stateId : 'grid')->setAction(self::request()->getUri()->get()); $this->navbar->add($this->filtersForm); } if ($this->stateId) { $filter->setName($this->stateId . '_' . $filter->getName()); } $this->filtersForm->add($filter); $this->filtersForm->setAction(Uri::parse($this->filtersForm->getAction())->removeQuery($filter->getName())->get()); if ($filter->getLabel()) { $filter->getLabel()->addClass('sr-only'); } return $this; }