diff options
-rw-r--r-- | app/assets/javascripts/compare.js.coffee | 1 | ||||
-rw-r--r-- | app/assets/javascripts/gl_dropdown.js.coffee | 37 |
2 files changed, 31 insertions, 7 deletions
diff --git a/app/assets/javascripts/compare.js.coffee b/app/assets/javascripts/compare.js.coffee index e5819fa91c3..8b502c8f27a 100644 --- a/app/assets/javascripts/compare.js.coffee +++ b/app/assets/javascripts/compare.js.coffee @@ -9,6 +9,7 @@ class @Compare $dropdown.glDropdown( selectable: true fieldName: $dropdown.data 'field-name' + filterable: true id: (obj, $el) -> $el.data 'id' toggleLabel: (obj, $el) -> diff --git a/app/assets/javascripts/gl_dropdown.js.coffee b/app/assets/javascripts/gl_dropdown.js.coffee index 38b38fc8426..82a82a27ccf 100644 --- a/app/assets/javascripts/gl_dropdown.js.coffee +++ b/app/assets/javascripts/gl_dropdown.js.coffee @@ -57,14 +57,30 @@ class GitLabDropdownFilter filter: (search_text) -> data = @options.data() - results = data - if search_text isnt "" - results = fuzzaldrinPlus.filter(data, search_text, - key: @options.keys - ) + if data? + results = data - @options.callback results + if search_text isnt "" + results = fuzzaldrinPlus.filter(data, search_text, + key: @options.keys + ) + + @options.callback results + else + elements = @options.elements() + + if search_text + elements.each -> + $el = $(@) + matches = fuzzaldrinPlus.match($el.text().trim(), search_text) + + if matches.length + $el.show() + else + $el.hide() + else + elements.show() class GitLabDropdownRemote constructor: (@dataEndpoint, @options) -> @@ -147,7 +163,14 @@ class GitLabDropdown filterInputBlur: @filterInputBlur remote: @options.filterRemote query: @options.data - keys: @options.search.fields + keys: search_fields + elements: => + selector = ".dropdown-content li:not(.divider)" + + if @dropdown.find(".dropdown-toggle-page").length + selector = ".dropdown-page-one #{selector}" + + return $(selector) data: => return @fullData callback: (data) => |