From 1237ff8209d4e136ea8305bea18fda7979b3d882 Mon Sep 17 00:00:00 2001 From: Tomi Virkki Date: Tue, 28 Mar 2017 10:28:46 +0300 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20normalize=20values=20into=20str?= =?UTF-8?q?ings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/sorting.html | 15 +++++++++++++++ vaadin-grid-array-data-provider-behavior.html | 10 ++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/test/sorting.html b/test/sorting.html index c0f295daf..aa832aa68 100644 --- a/test/sorting.html +++ b/test/sorting.html @@ -370,6 +370,21 @@ expect(getBodyCellContent(grid, 1, 0).innerText).to.equal('foo'); expect(getBodyCellContent(grid, 2, 0).innerText).to.equal('NaN'); }); + + it('should sort numbers correctly', function() { + grid.items = [{ + first: 1 + }, { + first: 2 + }, { + first: 11 + }]; + + expect(getBodyCellContent(grid, 0, 0).innerText).to.equal('1'); + expect(getBodyCellContent(grid, 1, 0).innerText).to.equal('2'); + expect(getBodyCellContent(grid, 2, 0).innerText).to.equal('11'); + }); + }); describe('data provider', function() { diff --git a/vaadin-grid-array-data-provider-behavior.html b/vaadin-grid-array-data-provider-behavior.html index 48816a85d..78e087d5b 100644 --- a/vaadin-grid-array-data-provider-behavior.html +++ b/vaadin-grid-array-data-provider-behavior.html @@ -94,7 +94,13 @@ }, _normalizeEmptyValue: function(value) { - return [undefined, null].indexOf(value) >= 0 ? '' : value.toString(); + if ([undefined, null].indexOf(value) >= 0) { + return ''; + } else if (isNaN(value)) { + return value.toString(); + } else { + return value; + } }, _compare: function(a, b) { @@ -114,7 +120,7 @@ return items.filter(function(item, index) { return this._filters.filter(function(filter) { var value = this._normalizeEmptyValue(Polymer.Base.get(filter.path, item)); - return value.toLowerCase().indexOf(filter.value.toString().toLowerCase()) === -1; + return value.toString().toLowerCase().indexOf(filter.value.toString().toLowerCase()) === -1; }.bind(this)).length === 0; }, this); }