From d2019d3a091773fc8249466c7d2d3d013a91376b Mon Sep 17 00:00:00 2001 From: Keith Carangelo Date: Wed, 8 Sep 2021 20:45:56 -0400 Subject: [PATCH] Fixed issue with suggestions on multiple terms --- assets/default/js/base.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/assets/default/js/base.js b/assets/default/js/base.js index 19b1f9ec7..1c6037886 100644 --- a/assets/default/js/base.js +++ b/assets/default/js/base.js @@ -48,18 +48,19 @@ function createAwesompleteInstance(element, separator, tags = []) { // Tags are separated by separator. Ignore leading search flags awesome.filter = (text, input) => { let filterFunc = Awesomplete.FILTER_CONTAINS; - const inputFlagged = input.replace(/^[-~+]/, ''); - if (input !== inputFlagged) { - input = inputFlagged; + let term = input.match(new RegExp(`[^${separator}]*$`))[0]; + const termFlagged = term.replace(/^[-~+]/, ''); + if (term !== termFlagged) { + term = termFlagged; filterFunc = Awesomplete.FILTER_STARTSWITH; } - return filterFunc(text, input.match(new RegExp(`[^${separator}]*$`))[0]); + return filterFunc(text, term); }; // Insert new selected tag in the input awesome.replace = (text) => { - const before = awesome.input.value.match(new RegExp(`^.+${separator}+|`))[0]; + const before = awesome.input.value.match(new RegExp(`^(.+${separator}+)?[-~+]?|`))[0]; awesome.input.value = `${before}${text}${separator}`; }; // Highlight found items