From edaa494c1f338a1a74473d6503e8595a3f60bbe5 Mon Sep 17 00:00:00 2001 From: Theodore Brown Date: Fri, 23 May 2014 16:14:57 -0500 Subject: [PATCH 1/2] Fix error if sortable column contains null values --- jquery.dynatable.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jquery.dynatable.js b/jquery.dynatable.js index d08aba3..143d533 100644 --- a/jquery.dynatable.js +++ b/jquery.dynatable.js @@ -960,8 +960,9 @@ var aAttr = (a['dynatable-sortable-text'] && a['dynatable-sortable-text'][attr]) ? a['dynatable-sortable-text'][attr] : a[attr], bAttr = (b['dynatable-sortable-text'] && b['dynatable-sortable-text'][attr]) ? b['dynatable-sortable-text'][attr] : b[attr], comparison; - aAttr = aAttr.toLowerCase(); - bAttr = bAttr.toLowerCase(); + // don't call toLowerCase if the item is null + aAttr = aAttr ? aAttr.toLowerCase() : aAttr; + bAttr = bAttr ? bAttr.toLowerCase() : bAttr; comparison = aAttr === bAttr ? 0 : (direction > 0 ? aAttr > bAttr : bAttr > aAttr); // force false boolean value to -1, true to 1, and tie to 0 return comparison === false ? -1 : (comparison - 0); From 2794e2e89c7bbad165db0f1e5d74dbba73caa03e Mon Sep 17 00:00:00 2001 From: Theodore Brown Date: Fri, 23 May 2014 16:16:23 -0500 Subject: [PATCH 2/2] settings.dataset.records shouldn't be a reference to settings.dataset.originalRecords (otherwise originalRecords gets modified) --- jquery.dynatable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jquery.dynatable.js b/jquery.dynatable.js index 143d533..97a44e2 100644 --- a/jquery.dynatable.js +++ b/jquery.dynatable.js @@ -653,7 +653,7 @@ }; this.resetOriginal = function() { - settings.dataset.records = settings.dataset.originalRecords || []; + settings.dataset.records = $.extend(true, [], settings.dataset.originalRecords) || []; }; this.pageBounds = function() {