diff options
author | Alfredo Sumaran <alfredo@gitlab.com> | 2017-05-30 21:23:03 -0500 |
---|---|---|
committer | Alfredo Sumaran <alfredo@gitlab.com> | 2017-05-30 23:21:40 -0500 |
commit | 876107d520506a74c9984c08615dc74950add7b1 (patch) | |
tree | cee4895c03a49a153b694168bc697ad1fa935dca /app/assets/javascripts/filterable_list.js | |
parent | c228ff0be4f5fdae9b03859707af51a06bd6006d (diff) | |
download | gitlab-ce-876107d520506a74c9984c08615dc74950add7b1.tar.gz |
Fix search by input
Diffstat (limited to 'app/assets/javascripts/filterable_list.js')
-rw-r--r-- | app/assets/javascripts/filterable_list.js | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/app/assets/javascripts/filterable_list.js b/app/assets/javascripts/filterable_list.js index 8149602f329..17c39cc7bbb 100644 --- a/app/assets/javascripts/filterable_list.js +++ b/app/assets/javascripts/filterable_list.js @@ -13,14 +13,18 @@ export default class FilterableList { initSearch() { // Wrap to prevent passing event arguments to .filterResults; - this.debounceFilter = _.debounce(() => { - this.filterResults(); - }, 500); + this.debounceFilter = _.debounce(this.onFilterInput.bind(this), 500); this.unbindEvents(); this.bindEvents(); } + onFilterInput() { + const url = this.filterForm.getAttribute('action'); + const data = $(this.filterForm).serialize(); + this.filterResults(url, data, 'filter-input'); + } + bindEvents() { this.listFilterElement.addEventListener('input', this.debounceFilter); } @@ -29,7 +33,7 @@ export default class FilterableList { this.listFilterElement.removeEventListener('input', this.debounceFilter); } - filterResults(url, data) { + filterResults(url, data, comingFrom) { const endpoint = url || this.filterForm.getAttribute('action'); const additionalData = data || $(this.filterForm).serialize(); @@ -42,7 +46,13 @@ export default class FilterableList { dataType: 'json', context: this, complete: this.onFilterComplete, - success: this.onFilterSuccess, + success: (response, textStatus, xhr) => { + if (this.preOnFilterSuccess) { + this.preOnFilterSuccess(comingFrom); + } + + this.onFilterSuccess(response, xhr); + }, }); } |