Example #1
0
 /**
  * @param FilterInterface $filter
  * @return TableBuilder
  */
 public function addFilter(FilterInterface $filter)
 {
     if ($this->filter !== null) {
         $filter->combine($this->filter);
     }
     $this->filter = $filter;
     return $this;
 }
Example #2
0
 /**
  * @return RowInterface[]
  */
 public function getRows()
 {
     return $this->filter->rowFilter($this->rows);
 }
Example #3
0
 /**
  * Helper method to render a FilterInterface to html.
  *
  * @param FilterInterface $filter
  * @return string
  */
 public function visitFilter(FilterInterface $filter)
 {
     if ($filter instanceof DummyFilter) {
         $type = 'dummy';
     } elseif ($filter instanceof SelectFilter) {
         $type = 'select';
     } elseif ($filter instanceof SearchFilter) {
         $type = 'search';
     } elseif ($filter instanceof SortFilter) {
         $type = 'sort';
     } elseif ($filter instanceof PaginationFilter) {
         $type = "{$filter->getType()}-pagination";
     } else {
         $type = 'dummy';
     }
     $template = "filter/{$type}.twig";
     return $this->loadTemplate($template)->render(["id" => $filter->getId(), "options" => $filter->getOptions()]);
 }