From 03c3afbb51093d56f5f634f0aa5c3eae1bb40e0b Mon Sep 17 00:00:00 2001 From: kielni Date: Tue, 29 Oct 2013 12:17:58 -0700 Subject: [PATCH] update filtereditor to use from/to instead of start/stop --- src/backend.memory.js | 14 ++++------ src/widget.filtereditor.js | 4 +-- test/backend.memory.test.js | 48 ++------------------------------ test/widget.filtereditor.test.js | 2 +- 4 files changed, 12 insertions(+), 56 deletions(-) diff --git a/src/backend.memory.js b/src/backend.memory.js index 00f1db4c..0c83a7d1 100644 --- a/src/backend.memory.js +++ b/src/backend.memory.js @@ -141,21 +141,19 @@ this.recline.Backend.Memory = this.recline.Backend.Memory || {}; } function range(record, filter) { - var filterStart = filter.start || filter.from; - var filterStop = filter.stop || filter.to; - var startnull = (_.isUndefined(filterStart) || filterStart === null || filterStart === ''); - var stopnull = (_.isUndefined(filterStop) || filterStop === null || filterStop === ''); + var fromnull = (_.isUndefined(filter.from) || filter.from === null || filter.from === ''); + var tonull = (_.isUndefined(filter.to) || filter.to === null || filter.to === ''); var parse = getDataParser(filter); var value = parse(record[filter.field]); - var start = parse(startnull ? '' : filterStart); - var stop = parse(stopnull ? '' : filterStop); + var from = parse(fromnull ? '' : filter.from); + var to = parse(tonull ? '' : filter.to); // if at least one end of range is set do not allow '' to get through // note that for strings '' <= {any-character} e.g. '' <= 'a' - if ((!startnull || !stopnull) && value === '') { + if ((!fromnull || !tonull) && value === '') { return false; } - return ((startnull || value >= start) && (stopnull || value <= stop)); + return ((fromnull || value >= from) && (tonull || value <= to)); } function geo_distance() { diff --git a/src/widget.filtereditor.js b/src/widget.filtereditor.js index ff92af87..3473b9d5 100644 --- a/src/widget.filtereditor.js +++ b/src/widget.filtereditor.js @@ -59,9 +59,9 @@ my.FilterEditor = Backbone.View.extend({ × \ \ \ - \ + \ \ - \ + \ \ \ ', diff --git a/test/backend.memory.test.js b/test/backend.memory.test.js index 9b88bec2..440e7d8d 100644 --- a/test/backend.memory.test.js +++ b/test/backend.memory.test.js @@ -99,20 +99,6 @@ test('filters', function () { deepEqual(_.pluck(out.hits, 'country'), ['UK','UK','UK']); }); - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'date', start: '2011-01-01', stop: '2011-05-01'}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 3); - deepEqual(_.pluck(out.hits, 'date'), ['2011-01-01','2011-02-03','2011-04-05']); - }); - - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'z', start: '0', stop: '10'}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 3); - deepEqual(_.pluck(out.hits, 'z'), [3,6,9]); - }); - query = new recline.Model.Query(); query.addFilter({type: 'range', field: 'date', from: '2011-01-01', to: '2011-05-01'}); data.query(query.toJSON()).then(function(out) { @@ -126,42 +112,25 @@ test('filters', function () { equal(out.total, 3); deepEqual(_.pluck(out.hits, 'z'), [3,6,9]); }); + }); test('filters with nulls', function () { var data = _wrapData(); - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'z', start: '', stop: null}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 6); - }); - query = new recline.Model.Query(); query.addFilter({type: 'range', field: 'z', from: '', to: null}); data.query(query.toJSON()).then(function(out) { equal(out.total, 6); }); - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'x', start: '', stop: '3'}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 3); - }); - query = new recline.Model.Query(); query.addFilter({type: 'range', field: 'x', from: '', to: '3'}); data.query(query.toJSON()).then(function(out) { equal(out.total, 3); }); - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'x', start: '3', stop: ''}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 4); - }); - query = new recline.Model.Query(); query.addFilter({type: 'range', field: 'x', from: '3', to: ''}); data.query(query.toJSON()).then(function(out) { @@ -169,11 +138,6 @@ test('filters with nulls', function () { }); data.records[5].country = ''; - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'country', start: '', stop: 'Z'}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 5); - }); query = new recline.Model.Query(); query.addFilter({type: 'range', field: 'country', from: '', to: 'Z'}); @@ -181,12 +145,6 @@ test('filters with nulls', function () { equal(out.total, 5); }); - query = new recline.Model.Query(); - query.addFilter({type: 'range', field: 'x', start: '', stop: ''}); - data.query(query.toJSON()).then(function(out) { - equal(out.total, 6); - }); - query = new recline.Model.Query(); query.addFilter({type: 'range', field: 'x', from: '', to: ''}); data.query(query.toJSON()).then(function(out) { @@ -350,14 +308,14 @@ test('filters', function () { }); dataset = makeBackendDataset(); - dataset.queryState.addFilter({type: 'range', field: 'date', start: '2011-01-01', stop: '2011-05-01'}); + dataset.queryState.addFilter({type: 'range', field: 'date', from: '2011-01-01', to: '2011-05-01'}); dataset.query().then(function() { equal(dataset.records.length, 3); deepEqual(dataset.records.pluck('date'), ['2011-01-01','2011-02-03','2011-04-05']); }); dataset = makeBackendDataset(); - dataset.queryState.addFilter({type: 'range', field: 'z', start: '0', stop: '10'}); + dataset.queryState.addFilter({type: 'range', field: 'z', from: '0', to: '10'}); dataset.query().then(function() { equal(dataset.records.length, 3); deepEqual(dataset.records.pluck('z'), [3,6,9]); diff --git a/test/widget.filtereditor.test.js b/test/widget.filtereditor.test.js index 656185c2..5faa0189 100644 --- a/test/widget.filtereditor.test.js +++ b/test/widget.filtereditor.test.js @@ -41,7 +41,7 @@ test('basics', function () { $editForm.find('.filter-range input').last().val('4'); $editForm.submit(); equal(dataset.queryState.attributes.filters[0].term, 'UK'); - equal(dataset.queryState.attributes.filters[1].start, 2); + equal(dataset.queryState.attributes.filters[1].from, 2); equal(dataset.records.length, 2); // now remove filter