extensions/net.sf.basedb.labenv/trunk/resources/reports/labsensorinfo.js

Code
Comments
Other
Rev Date Author Line
2989 02 Dec 14 olle 1 var LabSensInf = function()
2989 02 Dec 14 olle 2 {
2989 02 Dec 14 olle 3   var labsensinf = {};
2989 02 Dec 14 olle 4   var debug = 1;
2989 02 Dec 14 olle 5
2989 02 Dec 14 olle 6   // Page initialization
2989 02 Dec 14 olle 7   labsensinf.initPage = function()
2989 02 Dec 14 olle 8   {
4524 15 Jun 17 nicklas 9     labsensinf.getSensorInfo();
2989 02 Dec 14 olle 10   }
2989 02 Dec 14 olle 11
4524 15 Jun 17 nicklas 12   labsensinf.getSensorInfo = function()
2989 02 Dec 14 olle 13   {
2989 02 Dec 14 olle 14     var url = '../LabEnvironment.servlet?ID='+App.getSessionId();
4524 15 Jun 17 nicklas 15     url += '&cmd=GetSensorInfo';
4524 15 Jun 17 nicklas 16     Wizard.showLoadingAnimation('Loading sensor information. Please wait...');
4524 15 Jun 17 nicklas 17     Wizard.asyncJsonRequest(url, labsensinf.onSensorInfoLoaded);
2989 02 Dec 14 olle 18   }
4524 15 Jun 17 nicklas 19     
4524 15 Jun 17 nicklas 20   labsensinf.onSensorInfoLoaded = function(response)
2989 02 Dec 14 olle 21   {
4524 15 Jun 17 nicklas 22     var template = Doc.element('row-template');
4524 15 Jun 17 nicklas 23     var cols = template.getElementsByTagName('th');
4524 15 Jun 17 nicklas 24     var rows = Doc.element('all-rows');
4524 15 Jun 17 nicklas 25     
4524 15 Jun 17 nicklas 26     var sensors = response.sensors;
4524 15 Jun 17 nicklas 27     for (var sensorNo = 0; sensorNo < sensors.length; sensorNo++)
2989 02 Dec 14 olle 28     {
4524 15 Jun 17 nicklas 29       var sensor = sensors[sensorNo];
4524 15 Jun 17 nicklas 30       
4524 15 Jun 17 nicklas 31       var row = document.createElement('tr');
4524 15 Jun 17 nicklas 32       row.className = sensorNo % 2 == 0 ? 'evenrow highlight' : 'oddrow highlight';
4524 15 Jun 17 nicklas 33       
4524 15 Jun 17 nicklas 34       for (var colNo = 0; colNo < cols.length; colNo++)
2989 02 Dec 14 olle 35       {
4524 15 Jun 17 nicklas 36         var cell = document.createElement('td');
4524 15 Jun 17 nicklas 37         cell.className = 'cell';
4524 15 Jun 17 nicklas 38         var colId = cols[colNo].id;
4524 15 Jun 17 nicklas 39         if (colId == 'sensors.sensorId')
4524 15 Jun 17 nicklas 40         {
4524 15 Jun 17 nicklas 41           cell.className = 'id-col';
4524 15 Jun 17 nicklas 42           cell.innerHTML = sensor.id;
4524 15 Jun 17 nicklas 43         }
4524 15 Jun 17 nicklas 44         else if (colId == 'sensors.sensorName')
4524 15 Jun 17 nicklas 45         {
4524 15 Jun 17 nicklas 46           cell.innerHTML = Strings.encodeTags(sensor.name);
4524 15 Jun 17 nicklas 47         }
4524 15 Jun 17 nicklas 48         else if (colId == 'sensors.url')
4524 15 Jun 17 nicklas 49         {
4524 15 Jun 17 nicklas 50           cell.innerHTML = '<a href="'+Strings.encodeTags(sensor.url)+'" target="_blank" rel="noopener noreferrer">'+Strings.encodeTags(sensor.url)+'</a>';
4524 15 Jun 17 nicklas 51         }
4524 15 Jun 17 nicklas 52         else if (colId == 'sensors.serial')
4524 15 Jun 17 nicklas 53         {
4524 15 Jun 17 nicklas 54           cell.innerHTML = Strings.encodeTags(sensor.serial);
4524 15 Jun 17 nicklas 55         }
4524 15 Jun 17 nicklas 56         else if (colId == 'sensors.time')
4524 15 Jun 17 nicklas 57         {
4524 15 Jun 17 nicklas 58           cell.innerHTML = Strings.encodeTags(sensor.time);
4524 15 Jun 17 nicklas 59         }
4524 15 Jun 17 nicklas 60         else if (colId == 'sensors.temperature')
4524 15 Jun 17 nicklas 61         {
4524 15 Jun 17 nicklas 62           cell.innerHTML = Numbers.formatNumber(sensor.temperature, 1);
4524 15 Jun 17 nicklas 63         }
4524 15 Jun 17 nicklas 64         else if (colId == 'sensors.humidity')
4524 15 Jun 17 nicklas 65         {
4524 15 Jun 17 nicklas 66           cell.innerHTML = Numbers.formatNumber(sensor.humidity, 1);
4524 15 Jun 17 nicklas 67         }
4534 21 Jun 17 nicklas 68         else if (colId == 'sensors.alarm')
4534 21 Jun 17 nicklas 69         {
4534 21 Jun 17 nicklas 70           var html = '';
4534 21 Jun 17 nicklas 71           if (sensor.alarms && sensor.alarms.length > 0)
4534 21 Jun 17 nicklas 72           {
4534 21 Jun 17 nicklas 73             html += '<ul>';
4534 21 Jun 17 nicklas 74             for (var alarmNo = 0; alarmNo < sensor.alarms.length; alarmNo++)
4534 21 Jun 17 nicklas 75             {
4534 21 Jun 17 nicklas 76               html += '<li>'+Strings.encodeTags(sensor.alarms[alarmNo]);
4534 21 Jun 17 nicklas 77             }
4534 21 Jun 17 nicklas 78             html += '</ul>';
4534 21 Jun 17 nicklas 79           }
4534 21 Jun 17 nicklas 80           cell.innerHTML = html;
4534 21 Jun 17 nicklas 81         }
4525 15 Jun 17 nicklas 82         else if (colId == 'sensors.actions')
4525 15 Jun 17 nicklas 83         {
4525 15 Jun 17 nicklas 84           if (sensor.active)
4525 15 Jun 17 nicklas 85           {
4525 15 Jun 17 nicklas 86             var html = '<span class="link daily-plot"';
4525 15 Jun 17 nicklas 87             html += ' data-sensor-url="'+Strings.encodeTags(sensor.url)+'"';
4525 15 Jun 17 nicklas 88             html += ' data-sensor-name="'+Strings.encodeTags(sensor.name)+'"';
4526 19 Jun 17 nicklas 89             html += '><img src="../images/chart_curve.png"> Last 24 hours</span>';
4525 15 Jun 17 nicklas 90             cell.innerHTML = html;
4525 15 Jun 17 nicklas 91           }
4525 15 Jun 17 nicklas 92         }
4524 15 Jun 17 nicklas 93         row.appendChild(cell);
2989 02 Dec 14 olle 94       }
4524 15 Jun 17 nicklas 95       rows.appendChild(row);
2989 02 Dec 14 olle 96     }
2989 02 Dec 14 olle 97     
4525 15 Jun 17 nicklas 98     var dailyPlots = document.getElementsByClassName('daily-plot');
4525 15 Jun 17 nicklas 99     for (var itemNo = 0; itemNo < dailyPlots.length; itemNo++)
4525 15 Jun 17 nicklas 100     {
4525 15 Jun 17 nicklas 101       Events.addEventHandler(dailyPlots[itemNo], 'click', labsensinf.dailyPlot);
4525 15 Jun 17 nicklas 102     }
4525 15 Jun 17 nicklas 103
4524 15 Jun 17 nicklas 104     Doc.show('sensors');
2989 02 Dec 14 olle 105   }
2989 02 Dec 14 olle 106
2989 02 Dec 14 olle 107   
4525 15 Jun 17 nicklas 108   labsensinf.dailyPlot = function(event)
4525 15 Jun 17 nicklas 109   {
4525 15 Jun 17 nicklas 110     
4525 15 Jun 17 nicklas 111     var url = 'labenvironmentdatabaseeventpopup.jsp?ID='+App.getSessionId();
4526 19 Jun 17 nicklas 112     url += '&plotWidth=480&plotHeight=360&reportType=last24hours';
4525 15 Jun 17 nicklas 113     url += '&labSensorUrl='+encodeURIComponent(Data.get(event.currentTarget, "sensor-url"));
4525 15 Jun 17 nicklas 114     url += '&pageTitle='+encodeURIComponent(Data.get(event.currentTarget, "sensor-name"));
4525 15 Jun 17 nicklas 115     
4525 15 Jun 17 nicklas 116     Dialogs.openPopup(url, 'test', 1000, 500);
4525 15 Jun 17 nicklas 117   }
4525 15 Jun 17 nicklas 118
4525 15 Jun 17 nicklas 119   
2989 02 Dec 14 olle 120   return labsensinf;
2989 02 Dec 14 olle 121 }();
2989 02 Dec 14 olle 122
2989 02 Dec 14 olle 123 Doc.onLoad(LabSensInf.initPage);