From e28f534b24a87c5a59aa94ec1b392af99d4acef0 Mon Sep 17 00:00:00 2001 From: Florent Lavy Date: Fri, 5 Oct 2012 17:25:39 +0200 Subject: [PATCH 1/2] Fix bug when there are no data in a cell with an axis in datetime type --- jquery.highchartTable.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jquery.highchartTable.js b/jquery.highchartTable.js index 52b5cb5..c5435e0 100644 --- a/jquery.highchartTable.js +++ b/jquery.highchartTable.js @@ -217,7 +217,9 @@ var serie = series[column.indexTd]; if (rawCellValue.length==0) { - serie.data.push(null); + if (!isGraphDatetime) { + serie.data.push(null); + } } else { var cleanedCellValue = rawCellValue.replace(/ /g, '').replace(/,/, '.'); cellValue = Math.round(parseFloat(cleanedCellValue) * column.scale * 100) / 100; From 32bbcfdb63b6d55ea65ae103cca329a15e1d6ce9 Mon Sep 17 00:00:00 2001 From: Florent Lavy Date: Fri, 5 Oct 2012 17:32:08 +0200 Subject: [PATCH 2/2] Adding hour parsing in date parsing --- jquery.highchartTable.js | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/jquery.highchartTable.js b/jquery.highchartTable.js index c5435e0..e2a7143 100644 --- a/jquery.highchartTable.js +++ b/jquery.highchartTable.js @@ -228,8 +228,7 @@ if (isGraphDatetime) { dataGraphX = $('td', $(row)).first().text(); - var dateInfos = dataGraphX.split('-'); - var date = parseDate(dateInfos); + var date = parseDate(dataGraphX); dataGraphX = date.getTime() - date.getTimezoneOffset()*60*1000; } @@ -462,8 +461,7 @@ var value = $(table).data('graph-xaxis-'+minOrMax); if (typeof value != 'undefined') { if ($(table).data('graph-xaxis-type') == 'datetime') { - var dateInfos = value.split('-'); - var date = parseDate(dateInfos); + var date = parseDate(value); return date.getTime() - date.getTimezoneOffset()*60*1000; } return value; @@ -471,8 +469,18 @@ return null; }; - var parseDate = function(dateInfos) { - return new Date(parseInt(dateInfos[0], 10), parseInt(dateInfos[1], 10)-1, parseInt(dateInfos[2], 10)); + var parseDate = function(datetime) { + var calculatedateInfos = datetime.split(' '); + var dateDayInfos = calculatedateInfos[0].split('-'); + var min = null; + var hour = null; + // If hour and minute are available in the datetime string + if(calculatedateInfos[1]) { + var dateHourInfos = calculatedateInfos[1].split(':'); + min = parseInt(dateHourInfos[0], 10); + hour = parseInt(dateHourInfos[1], 10); + } + return new Date(parseInt(dateDayInfos[0], 10), parseInt(dateDayInfos[1], 10)-1, parseInt(dateDayInfos[2], 10), min, hour); }; -})(jQuery); \ No newline at end of file +})(jQuery);