From 4eace573bb4bfbea5f0c8beb02bd66d1230be6b5 Mon Sep 17 00:00:00 2001 From: johannnes <> Date: Thu, 2 Jan 2014 13:31:10 +0000 Subject: [PATCH] chartingfrontend: fixes for parsing filelogs git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@4529 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- www/frontend/controls_frontend.txt | 4 +-- .../app/controller/ChartController.js | 32 +++++++++++++------ .../frontend/app/controller/MainController.js | 2 +- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/www/frontend/controls_frontend.txt b/www/frontend/controls_frontend.txt index 92d34befd..6aecd56e9 100644 --- a/www/frontend/controls_frontend.txt +++ b/www/frontend/controls_frontend.txt @@ -278,8 +278,8 @@ UPD 2013-07-07_12:12:08 16201 www/frontend/app/view/DevicePanel.js UPD 2013-12-26_08:39:37 10257 www/frontend/app/view/TableDataGridPanel.js UPD 2013-12-29_01:56:25 64890 www/frontend/app/view/LineChartPanel.js UPD 2013-12-27_01:39:11 9980 www/frontend/app/view/Viewport.js -UPD 2013-12-29_01:55:25 19171 www/frontend/app/controller/MainController.js -UPD 2013-12-29_01:54:25 112255 www/frontend/app/controller/ChartController.js +UPD 2014-01-02_02:26:30 19171 www/frontend/app/controller/MainController.js +UPD 2014-01-02_01:53:01 113053 www/frontend/app/controller/ChartController.js UPD 2013-06-30_11:46:54 5415 www/frontend/app/controller/TableDataController.js UPD 2013-04-01_07:04:35 202 www/frontend/app/model/ReadingsModel.js UPD 2013-04-01_07:04:36 338 www/frontend/app/model/SavedChartsModel.js diff --git a/www/frontend/www/frontend/app/controller/ChartController.js b/www/frontend/www/frontend/app/controller/ChartController.js index bb31b4019..e18150bad 100644 --- a/www/frontend/www/frontend/app/controller/ChartController.js +++ b/www/frontend/www/frontend/app/controller/ChartController.js @@ -224,28 +224,34 @@ Ext.define('FHEM.controller.ChartController', { if (response && response.responseText) { var responseArr = response.responseText.split(/\n/), keyObjArray = [], - keyArray = []; + keyArray = [], + keyIndexArray = []; Ext.each(responseArr, function(row) { // the first column is always the timestamp, followed by device and multiple key:value - var splitArr = row.split(" "); + var splitArr = row.split(" "), + i = 2; // 2 is needed as offset, because get function starts at one and our array at 0 Ext.each(splitArr, function(key) { if (key.lastIndexOf(":") + 1 === key.length && !Ext.Array.contains(keyArray, key.replace(":", ""))) { keyArray.push(key.replace(":", "")); + keyIndexArray.push(i); } + i++; }); }); - Ext.Array.sort(keyArray); + var j = 0; Ext.each(keyArray, function(key) { - var obj = {"READING": key}; + var obj = {"READING": key, "INDEX": keyIndexArray[j]}; keyObjArray.push(obj); + j++; }); //reconfigure readings store if (keyObjArray.length > 0) { readingscombo.getStore().add(keyObjArray); + readingscombo.getStore().sort('READING', 'asc'); readingscombo.queryMode = 'local'; } else { @@ -432,6 +438,7 @@ Ext.define('FHEM.controller.ChartController', { Ext.each(yaxes, function(y) { var device = devices[i].getValue(), yaxis = yaxes[i].getValue(), + yaxisindex = yaxes[i].getStore().findRecord("READING", yaxes[i].getValue()).raw.INDEX, styleConfig = rowFieldSets[i].styleConfig, yaxisstatistics = yaxesstatistics[i].getValue(), axisside = axissideradio[i].getChecked()[0].getSubmitValue(), @@ -440,7 +447,7 @@ Ext.define('FHEM.controller.ChartController', { yaxis = yaxes[i].getRawValue(); } - me.populateAxis(i, yaxes.length, device, yaxis, styleConfig, axisside, yaxisstatistics, dbstarttime, dbendtime, logtype); + me.populateAxis(i, yaxes.length, device, yaxis, yaxisindex, styleConfig, axisside, yaxisstatistics, dbstarttime, dbendtime, logtype); i++; }); @@ -809,7 +816,7 @@ Ext.define('FHEM.controller.ChartController', { /** * fill the axes with data */ - populateAxis: function(i, axeslength, device, yaxis, styleConfig, axisside, yaxisstatistics, dbstarttime, dbendtime, logtype) { + populateAxis: function(i, axeslength, device, yaxis, yaxisindex, styleConfig, axisside, yaxisstatistics, dbstarttime, dbendtime, logtype) { var me = this, chart = me.getChart(), @@ -841,10 +848,15 @@ Ext.define('FHEM.controller.ChartController', { // as the get command wont support absolute pathes by default... currentlogfile = "../../../../../../../../" + currentlogfile; } - - url += '../../../fhem?cmd=get%20Logfile%20' + - currentlogfile + '%20-%20' + dbstarttime + - '%20' + dbendtime + '%204:' + yaxis + '.*::&XHR=1'; + url = '../../../fhem?cmd='; + url += encodeURIComponent('get Logfile ' + + currentlogfile + ' - ' + dbstarttime + + ' ' + dbendtime + ' ' + yaxisindex + ':' + yaxis + + '.*::$fld[' + (yaxisindex - 1) + + ']=~"ok|on|open|active|true"?1:($fld[' + + (yaxisindex - 1) + + ']=~"low|off|closed|inactive|false"?0:$fld[' + + (yaxisindex - 1) + ']*1)') + '&XHR=1'; } else if (!Ext.isDefined(yaxisstatistics) || yaxisstatistics === "none" || Ext.isEmpty(yaxisstatistics)) { url += '../../../fhem?cmd=get+' + FHEM.dblogname + '+-+webchart+' + dbstarttime + '+' + dbendtime + '+'; url +=device + '+timerange+' + "TIMESTAMP" + '+' + yaxis; diff --git a/www/frontend/www/frontend/app/controller/MainController.js b/www/frontend/www/frontend/app/controller/MainController.js index 063b8e16c..c60382387 100644 --- a/www/frontend/www/frontend/app/controller/MainController.js +++ b/www/frontend/www/frontend/app/controller/MainController.js @@ -95,7 +95,7 @@ Ext.define('FHEM.controller.MainController', { if (Ext.isDefined(FHEM.version)) { var sp = this.getStatustextfield(); - sp.setText(FHEM.version + "; Frontend Version: 1.0.5 - 2013-12-29"); + sp.setText(FHEM.version + "; Frontend Version: 1.0.6 - 2014-01-02"); } this.setupTree(false);