summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/filtered_search/filtered_search_dropdown.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/filtered_search/filtered_search_dropdown.js')
-rw-r--r--app/assets/javascripts/filtered_search/filtered_search_dropdown.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/app/assets/javascripts/filtered_search/filtered_search_dropdown.js b/app/assets/javascripts/filtered_search/filtered_search_dropdown.js
index 146d3ba963c..72565c2ca13 100644
--- a/app/assets/javascripts/filtered_search/filtered_search_dropdown.js
+++ b/app/assets/javascripts/filtered_search/filtered_search_dropdown.js
@@ -1,5 +1,6 @@
import DropdownUtils from './dropdown_utils';
import FilteredSearchDropdownManager from './filtered_search_dropdown_manager';
+import FilteredSearchVisualTokens from './filtered_search_visual_tokens';
const DATA_DROPDOWN_TRIGGER = 'data-dropdown-trigger';
@@ -31,13 +32,26 @@ export default class FilteredSearchDropdown {
itemClicked(e, getValueFunction) {
const { selected } = e.detail;
-
if (selected.tagName === 'LI' && selected.innerHTML) {
- const dataValueSet = DropdownUtils.setDataValueIfSelected(this.filter, selected);
+ const {
+ lastVisualToken: visualToken,
+ } = FilteredSearchVisualTokens.getLastVisualTokenBeforeInput();
+ const { tokenOperator } = DropdownUtils.getVisualTokenValues(visualToken);
+
+ const dataValueSet = DropdownUtils.setDataValueIfSelected(
+ this.filter,
+ tokenOperator,
+ selected,
+ );
if (!dataValueSet) {
const value = getValueFunction(selected);
- FilteredSearchDropdownManager.addWordToInput(this.filter, value, true);
+ FilteredSearchDropdownManager.addWordToInput({
+ tokenName: this.filter,
+ tokenOperator,
+ tokenValue: value,
+ clicked: true,
+ });
}
this.resetFilters();