Implement the search feature from the controller #182
This commit is contained in:
parent
dc842aab5e
commit
bd1009dac9
3 changed files with 59 additions and 1 deletions
|
|
@ -1,3 +1,8 @@
|
||||||
general_search:
|
general_search:
|
||||||
path: /search
|
path: /search
|
||||||
controller: App\Controller\SearchController::index
|
controller: App\Controller\SearchController::index
|
||||||
|
|
||||||
|
search_history:
|
||||||
|
path: /search/history
|
||||||
|
controller: App\Controller\SearchController::search
|
||||||
|
methods: [POST]
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
use App\Ramcar\BaseController;
|
use App\Ramcar\BaseController;
|
||||||
|
use App\Service\GeneralSearch;
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
use App\Menu\Generator as MenuGenerator;
|
use App\Menu\Generator as MenuGenerator;
|
||||||
use App\Access\Generator as ACLGenerator;
|
use App\Access\Generator as ACLGenerator;
|
||||||
|
|
@ -25,4 +29,27 @@ class SearchController extends BaseController
|
||||||
// response
|
// response
|
||||||
return $this->render('search/list.html.twig', $params);
|
return $this->render('search/list.html.twig', $params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function search(Request $req, GeneralSearch $search)
|
||||||
|
{
|
||||||
|
$this->denyAccessUnlessGranted('general.search', null, 'No access.');
|
||||||
|
|
||||||
|
$search_term = $req->request->get('data-rows-search');
|
||||||
|
$results = $search->search($search_term);
|
||||||
|
|
||||||
|
// process rows
|
||||||
|
// this is not how to process the results.
|
||||||
|
// TODO: fix this asap
|
||||||
|
$rows = [];
|
||||||
|
foreach ($obj_rows as $orow) {
|
||||||
|
// add row data
|
||||||
|
$row['id'] = $orow[0]->getID();
|
||||||
|
|
||||||
|
$rows[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->json([
|
||||||
|
'data' => $rows
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,12 +23,14 @@
|
||||||
<div class="col-xl-8 order-2 order-xl-1">
|
<div class="col-xl-8 order-2 order-xl-1">
|
||||||
<div class="form-group m-form__group row align-items-center">
|
<div class="form-group m-form__group row align-items-center">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
<form action= "{{ url('search_history') }}" method="post">
|
||||||
<div class="m-input-icon m-input-icon--left">
|
<div class="m-input-icon m-input-icon--left">
|
||||||
<input type="text" class="form-control m-input m-input--solid" placeholder="Search..." id="data-rows-search">
|
<input type="text" class="form-control m-input m-input--solid" placeholder="Search..." id="data-rows-search" >
|
||||||
<span class="m-input-icon__icon m-input-icon__icon--left">
|
<span class="m-input-icon__icon m-input-icon__icon--left">
|
||||||
<span><i class="la la-search"></i></span>
|
<span><i class="la la-search"></i></span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -46,6 +48,30 @@
|
||||||
|
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
<script>
|
<script>
|
||||||
|
$(function() {
|
||||||
|
var options = {
|
||||||
|
data: {
|
||||||
|
pageSize: 10,
|
||||||
|
serverPaging: true,
|
||||||
|
serverFiltering: true,
|
||||||
|
serverSorting: true
|
||||||
|
},
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
field: 'id',
|
||||||
|
title: 'ID',
|
||||||
|
width: 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'name',
|
||||||
|
title: 'name'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
var table = $("#data-rows").mDatatable(options);
|
||||||
|
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue