From c4ac7e1877e0d31e94205d62fe545a8e990b18cc Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Mon, 28 Mar 2022 20:24:07 +1100 Subject: [PATCH] Add callback for search text entery --- InvenTree/templates/js/translated/search.js | 60 +++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/InvenTree/templates/js/translated/search.js b/InvenTree/templates/js/translated/search.js index b9121a2fea..5b36f26213 100644 --- a/InvenTree/templates/js/translated/search.js +++ b/InvenTree/templates/js/translated/search.js @@ -6,6 +6,7 @@ /* exported closeSearchPanel, openSearchPanel, + searchTextChanged, */ @@ -30,5 +31,64 @@ function openSearchPanel() { // Finally, grab keyboard focus in the search bar panel.find('#search-input').focus(); + panel.find('#search-input').on('keyup change', searchTextChanged); + } +var searchRequests = []; +var searchInputTimer = null; +var searchText = null; +var searchTextPrevious = null; + +function searchTextChanged(event) { + + searchText = $('#offcanvas-search').find('#search-input').val(); + + clearTimeout(searchInputTimer); + searchInputTimer = setTimeout(updateSearch, 250); +}; + + +function updateSearch() { + + if (searchText == searchTextPrevious) { + return; + } + + if (searchText.length == 0) { + return; + } + + searchTextPrevious = searchText; + + // Search for matching parts + inventreeGet( + `{% url "api-part-list" %}`, + { + search: searchText, + limit: 10, + offset: 0, + }, + { + success: function(results) { + // TODO + } + } + ); + + // Search for matching stock items + inventreeGet( + '{% url "api-stock-list" %}', + { + search: searchText, + limit: 10, + offset: 0, + }, + { + success: function(results) { + // TODO + } + } + ) + +} \ No newline at end of file