summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Greiling <mike@pixelcog.com>2017-01-21 13:11:28 -0600
committerMike Greiling <mike@pixelcog.com>2017-01-21 20:39:30 -0600
commitd07acd42b5bcf6d4ec55bcfa7f99932319c522b3 (patch)
tree7524731d69f457acebfcc361ea8ad82668624126
parent37382d3299c7d229931295fe9848674b3121ae7d (diff)
downloadgitlab-ce-d07acd42b5bcf6d4ec55bcfa7f99932319c522b3.tar.gz
add a space after selecting a dropdown item
-rw-r--r--app/assets/javascripts/filtered_search/filtered_search_dropdown.js.es61
-rw-r--r--app/assets/javascripts/filtered_search/filtered_search_dropdown_manager.js.es612
2 files changed, 11 insertions, 2 deletions
diff --git a/app/assets/javascripts/filtered_search/filtered_search_dropdown.js.es6 b/app/assets/javascripts/filtered_search/filtered_search_dropdown.js.es6
index d2e7b61b345..859d6515531 100644
--- a/app/assets/javascripts/filtered_search/filtered_search_dropdown.js.es6
+++ b/app/assets/javascripts/filtered_search/filtered_search_dropdown.js.es6
@@ -39,6 +39,7 @@
}
this.dismissDropdown();
+ this.dispatchInputEvent();
}
}
diff --git a/app/assets/javascripts/filtered_search/filtered_search_dropdown_manager.js.es6 b/app/assets/javascripts/filtered_search/filtered_search_dropdown_manager.js.es6
index 408a0dfd768..00e1c28692f 100644
--- a/app/assets/javascripts/filtered_search/filtered_search_dropdown_manager.js.es6
+++ b/app/assets/javascripts/filtered_search/filtered_search_dropdown_manager.js.es6
@@ -61,11 +61,19 @@
const word = `${tokenName}:${tokenValue}`;
// Get the string to replace
- const selectionStart = input.selectionStart;
+ let newCaretPosition = input.selectionStart;
const { left, right } = gl.DropdownUtils.getInputSelectionPosition(input);
input.value = `${inputValue.substr(0, left)}${word}${inputValue.substr(right)}`;
- gl.FilteredSearchDropdownManager.updateInputCaretPosition(selectionStart, input);
+
+ // If we have added a tokenValue at the end of the input,
+ // add a space and set selection to the end
+ if (right >= inputValue.length && tokenValue !== '') {
+ input.value += ' ';
+ newCaretPosition = input.value.length;
+ }
+
+ gl.FilteredSearchDropdownManager.updateInputCaretPosition(newCaretPosition, input);
}
static updateInputCaretPosition(selectionStart, input) {