Set a maximum number of results for the query. Fix the issue of the search word not sent to the controller. #182

This commit is contained in:
Korina Cordero 2019-03-14 07:31:44 -04:00
parent bd1009dac9
commit fc94bfbef1
3 changed files with 37 additions and 31 deletions

View file

@ -38,15 +38,36 @@ class SearchController extends BaseController
$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();
// get the legacy job order results
foreach($results['legacy_job_orders'] as $lrow)
{
$row['id'] = $lrow->getID();
$row['name'] = $lrow->getCustName();
$row['plate_number'] = $lrow->getPlateNumber();
$rows[] = $row;
}
// get the job order results
foreach($results['job_orders'] as $jrow)
{
$row['id'] = $jrow->getID();
$row['name'] = $jrow->getCustomer()->getFirstName() . " " . $jrow->getCustomer()->getLastName();
$row['plate_number'] = $jrow->getCustomerVehicle()->getPlateNumber();
$rows[] = $row;
}
// get the warranties results
foreach($results['warranties'] as $wrow)
{
$row['id'] = $wrow->getID();
$row['name'] = $wrow->getFirstName() . " " . $wrow->getLastName();
$row['plate_number'] = $wrow->getPlateNumber();
$rows[] = $row;
}
return $this->json([
'data' => $rows

View file

@ -8,6 +8,8 @@ use App\Entity\Warranty;
use Doctrine\ORM\EntityManagerInterface;
define("SEARCH_MAX_RESULTS", "20");
class GeneralSearch
{
protected $em;
@ -30,6 +32,7 @@ class GeneralSearch
OR l.cust_first_name LIKE :search_term
OR l.cust_contact LIKE :search_term')
->setParameter('search_term', "%" . $search_term . "%")
->setMaxResults(SEARCH_MAX_RESULTS)
->getResult();
// query current job orders for plate number, name(first, last), phone number(mobile, landline, office, fax)
@ -45,6 +48,7 @@ class GeneralSearch
OR c.phone_office LIKE :search_term
OR c.phone_fax LIKE :search_term')
->setParameter('search_term', "%" . $search_term . "%")
->setMaxResults(SEARCH_MAX_RESULTS)
->getResult();
// query warranty for plate number, name(first, last), phone number(mobile)
@ -54,6 +58,7 @@ class GeneralSearch
OR w.last_name LIKE :search_term
OR w.mobile_number LIKE :search_term')
->setParameter('search_term', "%" . $search_term . "%")
->setMaxResults(SEARCH_MAX_RESULTS)
->getResult();
$results = array('legacy_job_orders'=>$legacy_job_orders, 'job_orders'=>$job_orders, 'warranties'=>$warranties);

View file

@ -23,9 +23,9 @@
<div class="col-xl-8 order-2 order-xl-1">
<div class="form-group m-form__group row align-items-center">
<div class="col-md-4">
<form action= "{{ url('search_history') }}" method="post">
<form action= "{{ url('search_history') }}" method="post" onsubmit="handle">
<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" name="data-rows-search" >
<span class="m-input-icon__icon m-input-icon__icon--left">
<span><i class="la la-search"></i></span>
</span>
@ -48,30 +48,10 @@
{% block scripts %}
<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);
});
function handle(e)
{
e.preventDefault();
}
</script>
{% endblock %}