search: Open typeahead on empty string only if lookup triggered by Tab.

Fixes part of #10026.
Adds additional option to typeahead:
`tabOpensEmptyTypeahead`(default: false):
tabOpensEmptyTypeahead overrides helpOnEmptyStrings.
This commit sets helpOnEmptyStrings to false and
tabOpensEmptyTypeahead to true. Now typeahead will
open on an empty string only if Tab has been pressed.
This commit is contained in:
Shubham Padia 2018-08-08 23:23:41 +05:30 committed by Tim Abbott
parent 0e2c509a24
commit b961093c14
3 changed files with 9 additions and 5 deletions

View File

@ -89,7 +89,8 @@ run_test('initizalize', () => {
assert.equal(opts.fixed, true);
assert.equal(opts.items, 12);
assert.equal(opts.naturalSearch, true);
assert.equal(opts.helpOnEmptyStrings, true);
assert.equal(opts.tabOpensEmptyTypeahead, true);
assert.equal(opts.helpOnEmptyStrings, false);
assert.equal(opts.matcher(), true);
{

View File

@ -70,6 +70,7 @@ exports.initialize = function () {
// just represents the key of the hash, so it's redundant.)
var search_object = {};
// tabOpensEmptyTypeahead overrides helpOnEmptyStrings.
search_query_box.typeahead({
source: function (query) {
var suggestions;
@ -86,7 +87,8 @@ exports.initialize = function () {
},
fixed: true,
items: 12,
helpOnEmptyStrings: true,
tabOpensEmptyTypeahead: page_params.search_pills_enabled,
helpOnEmptyStrings: !page_params.search_pills_enabled,
naturalSearch: true,
highlighter: function (item) {
var obj = search_object[item];

View File

@ -1900,10 +1900,10 @@
, lookup: function (event) {
var items
var from_tab = (event === 'from_tab')
this.query = this.$element.is("[contenteditable]") ? this.$element.text() : this.$element.val();
if (!this.options.helpOnEmptyStrings) {
if (!this.options.helpOnEmptyStrings && !(from_tab && this.options.tabOpensEmptyTypeahead)) {
if (!this.query || this.query.length < this.options.minLength) {
return this.shown ? this.hide() : this
}
@ -2070,7 +2070,7 @@
case 9: // tab
if (!this.shown) {
this.lookup()
this.lookup('from_tab')
return
}
this.select(e)
@ -2143,6 +2143,7 @@
, stopAdvance: false
, dropup: false
, advanceKeyCodes: []
, tabOpensEmptyTypeahead: false
}
$.fn.typeahead.Constructor = Typeahead