Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Sumaran <alfredo@gitlab.com>2017-05-31 05:23:03 +0300
committerAlfredo Sumaran <alfredo@gitlab.com>2017-05-31 07:21:40 +0300
commit876107d520506a74c9984c08615dc74950add7b1 (patch)
treecee4895c03a49a153b694168bc697ad1fa935dca /app/assets/javascripts/filterable_list.js
parentc228ff0be4f5fdae9b03859707af51a06bd6006d (diff)
Fix search by input
Diffstat (limited to 'app/assets/javascripts/filterable_list.js')
-rw-r--r--app/assets/javascripts/filterable_list.js20
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);
+ },
});
}