From: Manya Agarwal <44937027+manyaagarwal@users.noreply.github.com> Date: Wed, 1 Apr 2020 15:32:21 +0000 (+0530) Subject: Bug 1183759 : Keyword suggestions should not show keywords which have been already... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03c6481c90f712c72df8e6ca4b27e60ac0137a9e;p=thirdparty%2Fbugzilla.git Bug 1183759 : Keyword suggestions should not show keywords which have been already selected --- diff --git a/extensions/BugModal/web/bug_modal.js b/extensions/BugModal/web/bug_modal.js index 107b6af00..b3fc875f4 100644 --- a/extensions/BugModal/web/bug_modal.js +++ b/extensions/BugModal/web/bug_modal.js @@ -638,14 +638,19 @@ $(function() { forceFixPosition: true, lookup: function(query, done) { query = query.toLowerCase(); + let that = document.querySelector('#keywords'); + var activeValues = that.value.split(','); + activeValues.forEach((o,i,a) => a[i] = a[i].trim()); var matchStart = $.grep(keywords, function(keyword) { - return keyword.toLowerCase().substr(0, query.length) === query; + if(!(activeValues.includes(keyword))) + return keyword.toLowerCase().substr(0, query.length) === query; }); var matchSub = $.grep(keywords, function(keyword) { - return keyword.toLowerCase().indexOf(query) !== -1 && - $.inArray(keyword, matchStart) === -1; + if(!(activeValues.includes(keyword))) + return keyword.toLowerCase().indexOf(query) !== -1 && + $.inArray(keyword, matchStart) === -1; }); var suggestions = $.map($.merge(matchStart, matchSub), function(suggestion) { diff --git a/js/field.js b/js/field.js index ae0393f59..ca0c86ae3 100644 --- a/js/field.js +++ b/js/field.js @@ -716,14 +716,18 @@ $(function() { lookup: function(query, done) { var values = BUGZILLA.autocomplete_values[that.data('values')]; query = query.toLowerCase(); + var activeValues = document.querySelector('#keywords').value.split(','); + activeValues.forEach((o,i,a) => a[i] = a[i].trim()); var matchStart = $.grep(values, function(value) { - return value.toLowerCase().substr(0, query.length) === query; + if(!(activeValues.includes(value))) + return value.toLowerCase().substr(0, query.length) === query; }); var matchSub = $.grep(values, function(value) { - return value.toLowerCase().indexOf(query) !== -1 && - $.inArray(value, matchStart) === -1; + if(!(activeValues.includes(value))) + return value.toLowerCase().indexOf(query) !== -1 && + $.inArray(value, matchStart) === -1; }); var suggestions = $.map($.merge(matchStart, matchSub), function(suggestion) {