Fix a bug in filtering of date fields.
diff --git a/render.js b/render.js
index 5548452..1f920fd 100644
--- a/render.js
+++ b/render.js
@@ -921,18 +921,18 @@
var wantvals = [];
for (var valuei in values) {
if (ingrid.types[keycol] === T_NUM) {
- wantvals.push(parseFloat(values[valuei]));
+ wantvals.push(parseFloat(values[valuei]).toString());
} else if (ingrid.types[keycol] === T_DATE ||
ingrid.types[keycol] === T_DATETIME) {
- wantvals.push(myParseDate(values[valuei]));
+ wantvals.push(myParseDate(values[valuei]).toString());
} else {
- wantvals.push(values[valuei]);
+ wantvals.push(values[valuei].toString());
}
}
for (var rowi in ingrid.data) {
var row = ingrid.data[rowi];
- var cell = row[keycol];
+ var cell = row[keycol].toString();
if (cell == undefined) {
cell = null;
}
diff --git a/t/trender.js b/t/trender.js
index bb01ede..214fca7 100644
--- a/t/trender.js
+++ b/t/trender.js
@@ -261,7 +261,24 @@
});
-wvtest('exec', function() {
+wvtest('filter', function() {
+ var rawdata = [
+ ['a', 'b', 'c'],
+ ['2013/01/02', '2', 3],
+ ['1977/11/14', '3.5', 1]
+ ];
+ afterquery.exec('filter=b=2', rawdata, function(grid) {
+ WVPASSEQ(grid.data, [[new Date(2013,0,2), 2, 3]]);
+ });
+ afterquery.exec('filter=a=1977-11-14', rawdata, function(grid) {
+ WVPASSEQ(grid.data, [[new Date(1977,10,14), 3.5, 1]]);
+ });
+ afterquery.exec('filter=a>1977-11-14', rawdata, function(grid) {
+ WVPASSEQ(grid.data, [[new Date(2013,0,2), 2, 3]]);
+ });
+});
+
+wvtest('group', function() {
var rawdata = [
['a', 'b', 'c'],
[1, 2, 3],