diff --git a/src/application/controllers/backend_api.php b/src/application/controllers/backend_api.php index 26fbd398..30927414 100644 --- a/src/application/controllers/backend_api.php +++ b/src/application/controllers/backend_api.php @@ -402,15 +402,17 @@ class Backend_api extends CI_Controller { $this->load->model('customers_model'); $key = $this->db->escape_str($_POST['key']); + $key = strtoupper($key); $where_clause = - '(first_name LIKE "%' . $key . '%" OR ' . - 'last_name LIKE "%' . $key . '%" OR ' . - 'email LIKE "%' . $key . '%" OR ' . - 'phone_number LIKE "%' . $key . '%" OR ' . - 'address LIKE "%' . $key . '%" OR ' . - 'city LIKE "%' . $key . '%" OR ' . - 'zip_code LIKE "%' . $key . '%")'; + '(first_name LIKE upper("%' . $key . '%") OR ' . + 'last_name LIKE upper("%' . $key . '%") OR ' . + 'email LIKE upper("%' . $key . '%") OR ' . + 'phone_number LIKE upper("%' . $key . '%") OR ' . + 'address LIKE upper("%' . $key . '%") OR ' . + 'city LIKE upper("%' . $key . '%") OR ' . + 'zip_code LIKE upper("%' . $key . '%") OR ' . + 'notes LIKE upper("%' . $key . '%"))'; $customers = $this->customers_model->get_batch($where_clause); diff --git a/src/application/views/backend/calendar.php b/src/application/views/backend/calendar.php index 3c816b20..9b80e0b1 100644 --- a/src/application/views/backend/calendar.php +++ b/src/application/views/backend/calendar.php @@ -101,6 +101,7 @@ diff --git a/src/assets/css/backend.css b/src/assets/css/backend.css index 67cde975..472f5225 100644 --- a/src/assets/css/backend.css +++ b/src/assets/css/backend.css @@ -173,12 +173,14 @@ body .modal.full-screen .wrapper { body .modal.full-screen .modal-footer { background-color: #f5f5f5; - position: absolute; - bottom: 0; width: 100%; height: 67px; } +body .modal.full-screen .modal-push { + height: 67px; +} + body .jspDrag { background: #D3D3D3; } diff --git a/src/assets/js/backend_calendar.js b/src/assets/js/backend_calendar.js index a042c97d..77637477 100644 --- a/src/assets/js/backend_calendar.js +++ b/src/assets/js/backend_calendar.js @@ -924,19 +924,62 @@ var BackendCalendar = { * Event: Filter Existing Customers "Change" */ $('#filter-existing-customers').keyup(function() { - var key = $(this).val().toLowerCase(); - var $list = $('#existing-customers-list'); - $list.empty(); - $.each(GlobalVariables.customers, function(index, c) { - if (c.first_name.toLowerCase().indexOf(key) != -1 - || c.last_name.toLowerCase().indexOf(key) != -1 - || c.email.toLowerCase().indexOf(key) != -1 - || c.phone_number.toLowerCase().indexOf(key) != -1 - || c.address.toLowerCase().indexOf(key) != -1 - || c.city.toLowerCase().indexOf(key) != -1 - || c.zip_code.toLowerCase().indexOf(key) != -1) { - $list.append('
' - + c.first_name + ' ' + c.last_name + '
'); + var key = $(this).val().toLowerCase(), + $list = $('#existing-customers-list'), + postUrl = GlobalVariables.baseUrl + '/index.php/backend_api/ajax_filter_customers', + postData = { + 'csrfToken': GlobalVariables.csrfToken, + 'key': key + }; + + // Try to get the updated customer list. + $.ajax({ + type: 'POST', + url: postUrl, + data: postData, + dataType: 'json', + timeout: 1000, + global: false, + success: function(response) { + ///////////////////////////////////////////////////////////// + // console.log('Filter Customers Appointment Response:', response); + ///////////////////////////////////////////////////////////// + + $list.empty(); + $.each(response, function(index, c) { + $list.append('
' + + c.first_name + ' ' + c.last_name + '
'); + + // Verify if this customer is on the old customer list. + var result = $.grep(GlobalVariables.customers, + function(e){ return e.id == c.id; }); + + // Add it to the customer list. + if(result.length == 0){ + GlobalVariables.customers.push(c); + } + }); + }, + error: function(jqXHR, textStatus, errorThrown) { + ////////////////////////////////////////////////////////////////// + // console.log('Filter Customers Appointment Error:', jqXHR, textStatus, errorThrown); + ////////////////////////////////////////////////////////////////// + + // If there is any error on the request, search by the local client database. + $list.empty(); + $.each(GlobalVariables.customers, function(index, c) { + if (c.first_name.toLowerCase().indexOf(key) != -1 + || c.last_name.toLowerCase().indexOf(key) != -1 + || c.email.toLowerCase().indexOf(key) != -1 + || c.phone_number.toLowerCase().indexOf(key) != -1 + || c.address.toLowerCase().indexOf(key) != -1 + || c.city.toLowerCase().indexOf(key) != -1 + || c.zip_code.toLowerCase().indexOf(key) != -1 + || c.notes.toLowerCase().indexOf(key) != -1) { + $list.append('
' + + c.first_name + ' ' + c.last_name + '
'); + } + }); } }); });