Added search bar under nav bar to jump to series by searching

This commit is contained in:
Mark McDowall 2013-09-22 00:55:44 -07:00
commit 48dbc127a7
6 changed files with 98 additions and 33 deletions

View file

@ -59,4 +59,15 @@
</ul>
</div>
</div>
<div class="row">
<div class="span12">
<div class="search">
<div class="input-prepend">
<span class="add-on"><i class="icon-search"></i></span>
<input class="span4 x-series-search" id="prependedInput" type="text">
</div>
</div>
</div>
</div>
</div>

View file

@ -1,14 +1,23 @@
'use strict';
define(
[
'marionette'
'marionette',
'Navbar/Search'
], function (Marionette) {
return Marionette.ItemView.extend({
template : 'Navbar/NavbarTemplate',
ui: {
search: '.x-series-search'
},
events: {
'click a': 'onClick'
},
template : 'Navbar/NavbarTemplate',
onRender: function (){
this.ui.search.bindSearch();
},
onClick: function (event) {

29
UI/Navbar/Search.js Normal file
View file

@ -0,0 +1,29 @@
'use strict';
define(
[
'app',
'Series/SeriesCollection'
], function (App, SeriesCollection) {
$.fn.bindSearch = function () {
$(this).typeahead({
source : function () {
return SeriesCollection.map(function (model) {
return model.get('title');
});
},
sorter: function (items) {
return items.sort();
},
updater: function (item) {
var series = SeriesCollection.find(function (model) {
return model.get('title') === item;
});
this.$element.blur();
App.Router.navigate('/series/{0}'.format(series.get('titleSlug')), { trigger: true });
}
});
};
});