Commit 1a21fa26 authored by Phil Hughes's avatar Phil Hughes Committed by Jacob Schatz

Improved ref switcher dropdown performance

Closes #18202
parent d17f5068
......@@ -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');
......
......@@ -267,12 +267,15 @@ class ProjectsController < Projects::ApplicationController
end
def refs
branches = BranchesFinder.new(@repository, params).execute
options = {
'Branches' => @repository.branch_names,
'Branches' => Kaminari.paginate_array(branches).page(params[:page]).per(100),
}
unless @repository.tag_count.zero?
options['Tags'] = VersionSorter.rsort(@repository.tag_names)
tags = TagsFinder.new(@repository, params).execute
options['Tags'] = Kaminari.paginate_array(tags).page(params[:page]).per(100)
end
# If reference is commit id - we should add it to branch/tag selectbox
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment