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,12 +38,33 @@ class SearchController extends BaseController
$results = $search->search($search_term); $results = $search->search($search_term);
// process rows // process rows
// this is not how to process the results.
// TODO: fix this asap
$rows = []; $rows = [];
foreach ($obj_rows as $orow) { // get the legacy job order results
// add row data foreach($results['legacy_job_orders'] as $lrow)
$row['id'] = $orow[0]->getID(); {
$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; $rows[] = $row;
} }

View file

@ -8,6 +8,8 @@ use App\Entity\Warranty;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
define("SEARCH_MAX_RESULTS", "20");
class GeneralSearch class GeneralSearch
{ {
protected $em; protected $em;
@ -30,6 +32,7 @@ class GeneralSearch
OR l.cust_first_name LIKE :search_term OR l.cust_first_name LIKE :search_term
OR l.cust_contact LIKE :search_term') OR l.cust_contact LIKE :search_term')
->setParameter('search_term', "%" . $search_term . "%") ->setParameter('search_term', "%" . $search_term . "%")
->setMaxResults(SEARCH_MAX_RESULTS)
->getResult(); ->getResult();
// query current job orders for plate number, name(first, last), phone number(mobile, landline, office, fax) // 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_office LIKE :search_term
OR c.phone_fax LIKE :search_term') OR c.phone_fax LIKE :search_term')
->setParameter('search_term', "%" . $search_term . "%") ->setParameter('search_term', "%" . $search_term . "%")
->setMaxResults(SEARCH_MAX_RESULTS)
->getResult(); ->getResult();
// query warranty for plate number, name(first, last), phone number(mobile) // 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.last_name LIKE :search_term
OR w.mobile_number LIKE :search_term') OR w.mobile_number LIKE :search_term')
->setParameter('search_term', "%" . $search_term . "%") ->setParameter('search_term', "%" . $search_term . "%")
->setMaxResults(SEARCH_MAX_RESULTS)
->getResult(); ->getResult();
$results = array('legacy_job_orders'=>$legacy_job_orders, 'job_orders'=>$job_orders, 'warranties'=>$warranties); $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="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"> <form action= "{{ url('search_history') }}" method="post" onsubmit="handle">
<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" name="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>
@ -48,30 +48,10 @@
{% block scripts %} {% block scripts %}
<script> <script>
$(function() { function handle(e)
var options = {
data: {
pageSize: 10,
serverPaging: true,
serverFiltering: true,
serverSorting: true
},
columns: [
{ {
field: 'id', e.preventDefault();
title: 'ID', }
width: 30
},
{
field: 'name',
title: 'name'
},
],
};
var table = $("#data-rows").mDatatable(options);
});
</script> </script>
{% endblock %} {% endblock %}