diff --git a/app/assets/javascripts/sidebar.js b/app/assets/javascripts/sidebar.js index 95bcf2ed7..7e2d685b3 100644 --- a/app/assets/javascripts/sidebar.js +++ b/app/assets/javascripts/sidebar.js @@ -327,29 +327,39 @@ initializeActions(payload, type); } - // TODO: optimize so we're not hitting server on each keyup once > 2 characters are entered + var delay = (function(){ + var timer = 0; + return function(callback, ms) { + clearTimeout(timer); + timer = setTimeout(callback, ms); + }; + })(); + function events() { $('#search-input').keyup(function(evt) { - // ENTER KEY - if (evt.which === 13) { - return hideSearchResults(); - } + delay(function() { + // ENTER KEY + if (evt.which === 13) { + return hideSearchResults(); + } - // ESCAPE KEY - if (evt.which === 27) { - return hideSearchResults(); - } + // ESCAPE KEY + if (evt.which === 27) { + return hideSearchResults(); + } - var query = $(this).val(); + var query = $('#search-input').val(); + logger.debug("query=" + query); - if (query === '') { - return hideSearchResults(); - } + if (query === '') { + return hideSearchResults(); + } - if (query.length > 2) { - emptySearchResults(); - search(query); - } + if (query.length > 2) { + emptySearchResults(); + search(query); + } + }, 1000); }); $('#sidebar-search-expand').click(function(evt) {