You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/UI/Navbar/Search.js

36 lines
1.2 KiB

9 years ago
var _ = require('underscore');
var $ = require('jquery');
var vent = require('../vent');
var Backbone = require('backbone');
var SeriesCollection = require('../Series/SeriesCollection');
require('typeahead');
9 years ago
module.exports = (function(){
vent.on(vent.Hotkeys.NavbarSearch, function(){
$('.x-series-search').focus();
});
$.fn.bindSearch = function(){
$(this).typeahead({
hint : true,
highlight : true,
minLength : 1
}, {
name : 'series',
displayKey : 'title',
source : substringMatcher()
});
9 years ago
$(this).on('typeahead:selected typeahead:autocompleted', function(e, series){
this.blur();
$(this).val('');
Backbone.history.navigate('/series/{0}'.format(series.titleSlug), {trigger : true});
});
};
var substringMatcher = function(){
return function findMatches (q, cb){
var matches = _.select(SeriesCollection.toJSON(), function(series){
return series.title.toLowerCase().indexOf(q.toLowerCase()) > -1;
});
9 years ago
cb(matches);
};
9 years ago
};
}).call(this);