[#66,filters][s]: memory backend support for filters.

This commit is contained in:
Rufus Pollock
2012-04-02 21:05:28 +01:00
parent 1eb7df9a7c
commit 36548ceffc
2 changed files with 16 additions and 0 deletions

View File

@@ -120,6 +120,12 @@ this.recline.Backend = this.recline.Backend || {};
var numRows = queryObj.size; var numRows = queryObj.size;
var start = queryObj.from; var start = queryObj.from;
results = this.datasets[model.id].documents; results = this.datasets[model.id].documents;
_.each(queryObj.filters, function(filter) {
results = _.filter(results, function(doc) {
var fieldId = _.keys(filter.term)[0];
return (doc[fieldId] == filter.term[fieldId]);
});
});
// not complete sorting! // not complete sorting!
_.each(queryObj.sort, function(sortObj) { _.each(queryObj.sort, function(sortObj) {
var fieldName = _.keys(sortObj)[0]; var fieldName = _.keys(sortObj)[0];

View File

@@ -79,7 +79,17 @@ test('Memory Backend: query sort', function () {
}); });
}); });
test('Memory Backend: filters', function () {
var dataset = makeBackendDataset();
dataset.queryState.addTermFilter('country', 'UK');
dataset.query().then(function() {
equal(dataset.currentDocuments.length, 3);
deepEqual(dataset.currentDocuments.pluck('country'), ['UK', 'UK', 'UK']);
});
});
test('Memory Backend: facet', function () { test('Memory Backend: facet', function () {
console.log('here');
var dataset = makeBackendDataset(); var dataset = makeBackendDataset();
dataset.queryState.addFacet('country'); dataset.queryState.addFacet('country');
dataset.query().then(function() { dataset.query().then(function() {