/**
  * Handle the table entries.
  *
  * @param SearchTableBuilder $builder
  */
 public function handle(SearchTableBuilder $builder)
 {
     /* @var LengthAwarePaginator $results */
     $results = (new SearchCriteria('results', function (SearchCriteria $criteria) use($builder) {
         $criteria->search(null, $builder->getTableFilterValue('term'));
         return $this->dispatch(new GetSearchResults($criteria));
     }))->results();
     $builder->setTableEntries($results->getCollection());
 }
 /**
  * Handle the table columns.
  *
  * @param SearchTableBuilder $builder
  */
 public function handle(SearchTableBuilder $builder)
 {
     $builder->setColumns([['heading' => 'module::field.title.name', 'value' => 'entry.edit_link'], ['heading' => 'module::field.description.name', 'value' => 'entry.description'], ['heading' => 'module::field.keywords.name', 'value' => function (SearchPresenter $entry) {
         /* @var SearchItem $item */
         $item = $entry->getObject();
         return implode(' ', array_map(function ($keyword) {
             return '<span class="label label-default">' . $keyword . '</span>';
         }, $item->getKeywords()));
     }], ['heading' => 'module::field.stream.name', 'value' => 'entry.stream']]);
 }
 /**
  * Return the index.
  *
  * @param SearchTableBuilder $table
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function index(SearchTableBuilder $table)
 {
     return $table->render();
 }