public function handleSuggest($query)
{
!empty($this->grid->onRegistered) && $this->grid->onRegistered($this->grid);
$name = $this->getName();
if (!$this->getPresenter()->isAjax() || !$this->suggestion || $query == '') {
$this->getPresenter()->terminate();
}
$actualFilter = $this->grid->getActualFilter();
if (isset($actualFilter[$name])) {
unset($actualFilter[$name]);
}
$conditions = $this->grid->__getConditions($actualFilter);
if ($this->suggestionCallback === NULL) {
$conditions[] = $this->__getCondition($query);
$column = $this->suggestionColumn ? $this->suggestionColumn : current($this->getColumn());
$items = $this->grid->model->suggest($column, $conditions, $this->suggestionLimit);
} else {
$items = call_user_func_array($this->suggestionCallback, [$query, $actualFilter, $conditions, $this]);
if (!is_array($items)) {
throw new Exception('Items must be an array.');
}
}
$this->getPresenter()->sendResponse(new \Nette\Application\Responses\JsonResponse($items));
}