You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.3 KiB
43 lines
1.3 KiB
<?php
|
|
|
|
namespace Zitec\RuleEngineBundle\Controller;
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
|
|
/**
|
|
* Class DefaultController
|
|
*/
|
|
class DefaultController extends Controller
|
|
{
|
|
/**
|
|
* Action for the autocomplete call used in the Autocomplete widget type in the RuleBuilder javascript component.
|
|
*
|
|
* @param Request $request
|
|
* @return JsonResponse
|
|
* @throws \Exception
|
|
*/
|
|
public function autocompleteAction(Request $request)
|
|
{
|
|
$dataSourceKey = $request->get('key');
|
|
$queryMode = $request->get('mode');
|
|
$queryString = $request->get('q');
|
|
|
|
switch ($queryMode) {
|
|
case 'like':
|
|
$page = $request->get('page');
|
|
$results = $this->get('rule_engine.autocomplete')
|
|
->getSuggestions($dataSourceKey, $queryString, $page);
|
|
break;
|
|
case 'label':
|
|
$results = $this->get('rule_engine.autocomplete')
|
|
->getLabels($dataSourceKey, $queryString);
|
|
break;
|
|
default:
|
|
throw new \Exception('Invalid query mode.');
|
|
}
|
|
|
|
return new JsonResponse($results);
|
|
}
|
|
}
|