contacts/js/services/search_service.js

52 lines
999 B
JavaScript
Raw Normal View History

angular.module('contactsApp')
.service('SearchService', function() {
2016-03-14 23:58:51 +00:00
var searchTerm = '';
var observerCallbacks = [];
this.registerObserverCallback = function(callback) {
observerCallbacks.push(callback);
};
var notifyObservers = function(eventName) {
var ev = {
event:eventName,
2016-03-17 01:09:33 +00:00
searchTerm:searchTerm
2016-03-14 23:58:51 +00:00
};
angular.forEach(observerCallbacks, function(callback) {
callback(ev);
});
};
2016-03-16 19:15:14 +00:00
var SearchProxy = {
2016-03-14 23:58:51 +00:00
attach: function(search) {
search.setFilter('contacts', this.filterProxy);
},
filterProxy: function(query) {
searchTerm = query;
2016-03-16 19:15:14 +00:00
notifyObservers('changeSearch');
2016-03-14 23:58:51 +00:00
}
};
this.getSearchTerm = function() {
return searchTerm;
};
this.cleanSearch = function() {
2016-03-16 19:15:14 +00:00
if (!_.isUndefined($('.searchbox'))) {
$('.searchbox')[0].reset();
}
2016-03-14 23:58:51 +00:00
searchTerm = '';
};
2016-03-14 23:58:51 +00:00
if (!_.isUndefined($('.searchbox'))) {
$('.searchbox')[0].addEventListener('keypress', function(e) {
if(e.keyCode === 13) {
2016-03-16 19:15:14 +00:00
notifyObservers('submitSearch');
2016-03-14 23:58:51 +00:00
}
});
}
});