public function testCanFilterWhenGettingFilterableFields() { foreach ($this->fields as $field) { $field->setFilterable(true); } $this->assertEquals(4, count($this->fields->getFilterableFields())); $filter = new CallbackFilter(function (Field $field) { return 'visible' === $field->getId(); }); $this->assertEquals(1, count($this->fields->getFilterableFields($filter))); }
/** * Render the filter controls inside a form tag that is rendered elsewhere. * No form HTML tags or buttons will be rendered by this method, only the * filter controls themselves. * * By default, this form will use GET so that it geneates a query string * that can be used to share search results, but you can use POST if needed * for your case. * * @param Fields $fields * @param SelectFilter $selectFilter * @param string $title * @param string $method * @param boolean $buttons * @return string */ public function inline(Fields $fields, SelectFilter $selectFilter, $title, $method = 'GET', $buttons = false) { $this->view->headScript()->appendFile($this->view->bowerUrl('/dewdrop/www/js/filter/main.js')); $this->view->headLink()->appendStylesheet($this->view->bowerUrl('/dewdrop/www/css/filter.css')); return $this->partial('bootstrap-filter-controls.phtml', array('fields' => $fields->getFilterableFields(), 'typeHelper' => $selectFilter->getFilterTypeHelper(), 'values' => $selectFilter->getSelectModifier()->getCurrentFilters(), 'defaultVars' => $selectFilter->getDefaultVarsHelper(), 'title' => $title, 'method' => $method, 'paramPrefix' => $selectFilter->getPrefix(), 'showButtons' => $buttons)); }