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:
authorPhil Hughes <me@iamphill.com>2016-11-02 14:11:47 +0300
committerJacob Schatz <jschatz1@gmail.com>2016-11-22 05:01:45 +0300
commit1a21fa26f6f4ef70157c58329687976fc3f555f7 (patch)
treebf26d97040526811ff25a242dc7317f74faa8e7f /app/assets/javascripts/project.js
parentd17f5068118a0c86fcd39b3576161b2408596e2d (diff)
Improved ref switcher dropdown performance
Closes #18202
Diffstat (limited to 'app/assets/javascripts/project.js')
-rw-r--r--app/assets/javascripts/project.js21
1 files changed, 16 insertions, 5 deletions
diff --git a/app/assets/javascripts/project.js b/app/assets/javascripts/project.js
index 016d999d77e..78ab69206af 100644
--- a/app/assets/javascripts/project.js
+++ b/app/assets/javascripts/project.js
@@ -63,7 +63,8 @@
return $.ajax({
url: $dropdown.data('refs-url'),
data: {
- ref: $dropdown.data('ref')
+ ref: $dropdown.data('ref'),
+ search: term
},
dataType: "json"
}).done(function(refs) {
@@ -72,16 +73,26 @@
},
selectable: true,
filterable: true,
+ filterRemote: true,
filterByText: true,
fieldName: $dropdown.data('field-name'),
renderRow: function(ref) {
- var link;
+ var li = document.createElement('li');
+
if (ref.header != null) {
- return $('<li />').addClass('dropdown-header').text(ref.header);
+ li.className = 'dropdown-header';
+ li.textContent = ref.header;
} else {
- link = $('<a />').attr('href', '#').addClass(ref === selected ? 'is-active' : '').text(ref).attr('data-ref', ref);
- return $('<li />').append(link);
+ var link = document.createElement('a');
+ link.href = '#';
+ link.className = ref.name === selected ? 'is-active' : '';
+ link.textContent = ref.name;
+ link.dataset.ref = ref.name;
+
+ li.appendChild(link);
}
+
+ return li;
},
id: function(obj, $el) {
return $el.attr('data-ref');