Skip to content

Instantly share code, notes, and snippets.

@dburles
Created May 4, 2014 04:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dburles/576a4f68438a5d14edc3 to your computer and use it in GitHub Desktop.
Save dburles/576a4f68438a5d14edc3 to your computer and use it in GitHub Desktop.
Template.facetFilterItem.helpers({
isChecked: function(name, _id) {
return _.indexOf(Facet.get(name), _id) !== -1;
}
});
Facet = (function() {
var set = function(name, value) {
var current = Router.current();
var params = {};
var query;
params[name] = value;
if (! params[name].length)
query = _.omit(current.queryParams, name);
else
query = _.extend(current.queryParams, params);
Router.go(current.route.name, current.params, { query: query });
};
var get = function(name) {
var current = Router.current().params[name];
if (! current)
return [];
if (! _.isArray(current))
current = [current];
return current;
};
return {
add: function(name, value) {
var params = get(name) || [];
if (_.indexOf(params, value) === -1)
params.push(value);
set(name, params);
},
remove: function(name, value) {
set(name, _.without(get(name), value));
},
get: function(name) {
return get(name);
}
};
})();
Template.facetFilter.events({
'click input[type=checkbox]': function(event, template) {
var name = event.target.name;
var value = event.target.value;
if ($(event.target).is(':checked'))
Facet.add(name, value);
else
Facet.remove(name, value);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment