From cacc899a4da4f4f25098d748ebf48ad548029a52 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 11 Dec 2018 11:20:02 -0600 Subject: [PATCH] autocomplete: limit static metatags to 10 matches. Prevents autocomplete menu from becoming excessively long when completing order: metatags. --- app/javascript/src/javascripts/autocomplete.js.erb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/javascript/src/javascripts/autocomplete.js.erb b/app/javascript/src/javascripts/autocomplete.js.erb index 2eab853b3..963f0fda3 100644 --- a/app/javascript/src/javascripts/autocomplete.js.erb +++ b/app/javascript/src/javascripts/autocomplete.js.erb @@ -433,14 +433,10 @@ Autocomplete.static_metatags = { Autocomplete.static_metatag_source = function(term, resp, metatag) { var sub_metatags = this.static_metatags[metatag]; - var regexp = new RegExp("^" + $.ui.autocomplete.escapeRegex(term), "i"); - var matches = $.grep(sub_metatags, function (sub_metatag) { - return regexp.test(sub_metatag); - }); + var matches = sub_metatags.filter(sub_metatag => sub_metatag.startsWith(term.toLowerCase())); + matches = matches.map(sub_metatag => `${metatag}:${sub_metatag}`).sort().slice(0, 10); - resp($.map(matches, function(sub_metatag) { - return metatag + ":" + sub_metatag; - })); + resp(matches); } Autocomplete.user_source = function(term, resp, metatag) {