Vulcan/packages/nova-search/lib/client/templates/search.js
2016-02-17 14:27:27 +09:00

50 lines
1 KiB
JavaScript

// see: http://stackoverflow.com/questions/1909441/jquery-keyup-delay
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
Template.search.helpers({
canSearch: function () {
return Users.can.view(Meteor.user());
},
searchQuery: function () {
return FlowRouter.getQueryParam("query");
},
searchQueryEmpty: function () {
return !!FlowRouter.getQueryParam("query") ? "" : "empty";
}
});
Template.search.events({
'keyup .search-field': function (e) {
e.preventDefault();
var val = $(e.target).val(),
$search = $('.search');
// if we're not on search route, go to it
if (FlowRouter.getRouteName() !== "postsDefault") {
FlowRouter.go("postsDefault");
}
if (val === '') {
// if search field is empty
$search.addClass('empty');
val = null;
} else {
$search.removeClass('empty');
}
delay(function(){
FlowRouter.setQueryParams({query: val});
}, 700 );
}
});