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

Code
Comments
Other
Rev Date Author Line
2989 02 Dec 14 olle 1 var LabEnvDbEvPopup = function()
2989 02 Dec 14 olle 2 {
2989 02 Dec 14 olle 3   var labenvdbevpopup = {};
2989 02 Dec 14 olle 4   var debug = 0;
2989 02 Dec 14 olle 5   var storageIntervalInSeconds = null;
2989 02 Dec 14 olle 6   var intervalIsValid = true;
2989 02 Dec 14 olle 7
2989 02 Dec 14 olle 8   labenvdbevpopup.getStorageIntervalInSeconds = function()
2989 02 Dec 14 olle 9   {
2989 02 Dec 14 olle 10     return storageIntervalInSeconds;
2989 02 Dec 14 olle 11   }
2989 02 Dec 14 olle 12
2989 02 Dec 14 olle 13   labenvdbevpopup.setStorageIntervalInSeconds = function(storageIntervalInSecondsInput)
2989 02 Dec 14 olle 14   {
2989 02 Dec 14 olle 15     storageIntervalInSeconds = storageIntervalInSecondsInput;
2989 02 Dec 14 olle 16   }
2989 02 Dec 14 olle 17
2989 02 Dec 14 olle 18   // Page initialization
2989 02 Dec 14 olle 19   labenvdbevpopup.initPage = function()
2989 02 Dec 14 olle 20   {
2989 02 Dec 14 olle 21     var frm = document.forms['labenv'];
2989 02 Dec 14 olle 22
2989 02 Dec 14 olle 23     // Step 1
2989 02 Dec 14 olle 24     Events.addEventHandler('goprint', 'click', labenvdbevpopup.printVersion);
2989 02 Dec 14 olle 25
2989 02 Dec 14 olle 26     // Navigation
2989 02 Dec 14 olle 27     Buttons.addClickHandler('goprint', labenvdbevpopup.printVersion);
2989 02 Dec 14 olle 28     Buttons.addClickHandler('gocancel', labenvdbevpopup.cancelPrint);
2989 02 Dec 14 olle 29
2989 02 Dec 14 olle 30     // Fetch and store storage interval in seconds
2989 02 Dec 14 olle 31     labenvdbevpopup.fetchStorageIntervalInSeconds();
2989 02 Dec 14 olle 32
2989 02 Dec 14 olle 33     // Create pop-up window from request parameter data
2989 02 Dec 14 olle 34     labenvdbevpopup.goCreate();
2989 02 Dec 14 olle 35   };
2989 02 Dec 14 olle 36
2989 02 Dec 14 olle 37   labenvdbevpopup.fetchStorageIntervalInSeconds = function()
2989 02 Dec 14 olle 38   {
2989 02 Dec 14 olle 39     // Get lab environment database configuration JSON object with AJAX
2989 02 Dec 14 olle 40     var request = Ajax.getXmlHttpRequest();
2989 02 Dec 14 olle 41     var url = '../LabEnvironment.servlet?ID='+App.getSessionId();
2989 02 Dec 14 olle 42     url += '&cmd=GetLabEnvDatabaseConfig';
2989 02 Dec 14 olle 43
2989 02 Dec 14 olle 44     Wizard.asyncJsonRequest(url, labenvdbevpopup.fetchStorageIntervalInSeconds2);
2989 02 Dec 14 olle 45   }
2989 02 Dec 14 olle 46
2989 02 Dec 14 olle 47   labenvdbevpopup.fetchStorageIntervalInSeconds2 = function(response)
2989 02 Dec 14 olle 48   {
2989 02 Dec 14 olle 49     if (response.status != 'ok')
2989 02 Dec 14 olle 50     {
2989 02 Dec 14 olle 51       setFatalError(response.message);
2989 02 Dec 14 olle 52       return false;
2989 02 Dec 14 olle 53     }
2989 02 Dec 14 olle 54     // Get lab environment database configuration information from the AJAX response
2989 02 Dec 14 olle 55     var labEnvDatabaseConfig = response.labEnvDatabaseConfig;
2989 02 Dec 14 olle 56     if (labEnvDatabaseConfig != null)
2989 02 Dec 14 olle 57     {
2989 02 Dec 14 olle 58       var storageIntervalInSecondsCurrent = labEnvDatabaseConfig.storageIntervalInSeconds;
2989 02 Dec 14 olle 59       labenvdbevpopup.setStorageIntervalInSeconds(storageIntervalInSecondsCurrent);
2989 02 Dec 14 olle 60     }
2989 02 Dec 14 olle 61   }
2989 02 Dec 14 olle 62
2989 02 Dec 14 olle 63   labenvdbevpopup.getQueryParameter = function(parameterName)
2989 02 Dec 14 olle 64   {
2989 02 Dec 14 olle 65     var queryString = window.top.location.search.substring(1);
2989 02 Dec 14 olle 66     var parameterName = parameterName + "=";
2989 02 Dec 14 olle 67     if ( queryString.length > 0 )
2989 02 Dec 14 olle 68     {
2989 02 Dec 14 olle 69       begin = queryString.indexOf(parameterName);
2989 02 Dec 14 olle 70       if (begin != -1)
2989 02 Dec 14 olle 71       {
2989 02 Dec 14 olle 72         begin += parameterName.length;
2989 02 Dec 14 olle 73         end = queryString.indexOf("&" , begin);
2989 02 Dec 14 olle 74         if (end == -1)
2989 02 Dec 14 olle 75         {
2989 02 Dec 14 olle 76           end = queryString.length;
2989 02 Dec 14 olle 77         }
2989 02 Dec 14 olle 78         return unescape(queryString.substring(begin, end));
2989 02 Dec 14 olle 79       }
2989 02 Dec 14 olle 80     }
4525 15 Jun 17 nicklas 81     return null;
2989 02 Dec 14 olle 82   }
2989 02 Dec 14 olle 83
2989 02 Dec 14 olle 84   function getStorageIntervalInSeconds()
2989 02 Dec 14 olle 85   {
2989 02 Dec 14 olle 86     var storageIntervalInSeconds = 0;
2989 02 Dec 14 olle 87     var labEnvDatabaseConfig = getLabEnvDatabaseConfig();
2989 02 Dec 14 olle 88     if (labEnvDatabaseConfig != null)
2989 02 Dec 14 olle 89     {
2989 02 Dec 14 olle 90       storageIntervalInSeconds = labEnvDatabaseConfig.storageIntervalInSeconds;
2989 02 Dec 14 olle 91     }
2989 02 Dec 14 olle 92     return storageIntervalInSeconds;
2989 02 Dec 14 olle 93   }
2989 02 Dec 14 olle 94
2989 02 Dec 14 olle 95   function getLabEnvDatabaseConfig()
2989 02 Dec 14 olle 96   {
2989 02 Dec 14 olle 97     // Get lab environment database configuration JSON object with AJAX
2989 02 Dec 14 olle 98     var frm = document.forms['labenv'];
2989 02 Dec 14 olle 99     var request = Ajax.getXmlHttpRequest();
4525 15 Jun 17 nicklas 100     var url = '../../labenv.jar/LabEnvironment.servlet?ID='+App.getSessionId()+'&cmd=GetLabEnvDatabaseConfig';
2989 02 Dec 14 olle 101     request.open("GET", url, false); 
2989 02 Dec 14 olle 102     request.send(null);
2989 02 Dec 14 olle 103   
2989 02 Dec 14 olle 104     var response = JSON.parse(request.responseText);
2989 02 Dec 14 olle 105     if (response.status != 'ok')
2989 02 Dec 14 olle 106     {
2989 02 Dec 14 olle 107       setFatalError(response.message);
2989 02 Dec 14 olle 108       return false;
2989 02 Dec 14 olle 109     }
2989 02 Dec 14 olle 110   
2989 02 Dec 14 olle 111     // Get lab environment database configuration information from the AJAX response
2989 02 Dec 14 olle 112     var labEnvDatabaseConfig = response.labEnvDatabaseConfig;
2989 02 Dec 14 olle 113
2989 02 Dec 14 olle 114     return labEnvDatabaseConfig;
2989 02 Dec 14 olle 115   }
2989 02 Dec 14 olle 116
2989 02 Dec 14 olle 117   labenvdbevpopup.addEventHandlers = function(elements, eventName, handler)
2989 02 Dec 14 olle 118   {
2989 02 Dec 14 olle 119     for (var i = 0; i < elements.length; i++)
2989 02 Dec 14 olle 120     {
2989 02 Dec 14 olle 121       Events.addEventHandler(elements[i], eventName, handler);
2989 02 Dec 14 olle 122     }
2989 02 Dec 14 olle 123   }
2989 02 Dec 14 olle 124
2989 02 Dec 14 olle 125   labenvdbevpopup.fetchSimpleDate = function(dateStr)
2989 02 Dec 14 olle 126   {
2989 02 Dec 14 olle 127     var simpleDateStr = dateStr;
2989 02 Dec 14 olle 128     if (simpleDateStr != null)
2989 02 Dec 14 olle 129     {
2989 02 Dec 14 olle 130       var blankIndex = simpleDateStr.indexOf(" ");
2989 02 Dec 14 olle 131       if (blankIndex >= 0)
2989 02 Dec 14 olle 132       {
2989 02 Dec 14 olle 133         // YYYYMMDD HHmm or YYYY-MM-DD HH:mm
2989 02 Dec 14 olle 134         // Cut off date string before first space
2989 02 Dec 14 olle 135         simpleDateStr = simpleDateStr.substr(0,blankIndex);
2989 02 Dec 14 olle 136       }
2989 02 Dec 14 olle 137       //alert("simpleDateStr = \"" + simpleDateStr + "\" after removing daytime");
2989 02 Dec 14 olle 138       // YYYYMMDD or YYYY-MM-DD
2989 02 Dec 14 olle 139       var hyphenIndex = simpleDateStr.indexOf("-");
2989 02 Dec 14 olle 140       //alert("simpleDateStr = \"" + simpleDateStr + "\" after removing daytime, hyphenIndex = " + hyphenIndex);
2989 02 Dec 14 olle 141       if (hyphenIndex >= 0)
2989 02 Dec 14 olle 142       {
2989 02 Dec 14 olle 143         // YYYY-MM-DD
2989 02 Dec 14 olle 144         // Cut off date string before first space
2989 02 Dec 14 olle 145         var yearStr = simpleDateStr.substr(0,4);
2989 02 Dec 14 olle 146         var monthStr = simpleDateStr.substr(5,2);
2989 02 Dec 14 olle 147         var dayStr = simpleDateStr.substr(8,2);
2989 02 Dec 14 olle 148         simpleDateStr = yearStr + monthStr + dayStr;
2989 02 Dec 14 olle 149         //alert("simpleDateStr = \"" + simpleDateStr + "\" after removing hyphens, yearStr = \"" + yearStr + "\" monthStr = \"" + monthStr + "\" dayStr = \"" + dayStr + "\"");
2989 02 Dec 14 olle 150       }
2989 02 Dec 14 olle 151     }
2989 02 Dec 14 olle 152     // Date in YYYYMMDD format
2989 02 Dec 14 olle 153     return simpleDateStr;
2989 02 Dec 14 olle 154   }
2989 02 Dec 14 olle 155
2989 02 Dec 14 olle 156   labenvdbevpopup.goCreate = function()
2989 02 Dec 14 olle 157   {
2989 02 Dec 14 olle 158     if (!intervalIsValid) return;
2989 02 Dec 14 olle 159     var frm = document.forms['labenv'];    
4526 19 Jun 17 nicklas 160     var reportType = labenvdbevpopup.getQueryParameter('reportType') || 'labenvironmentdailydisplay';
4525 15 Jun 17 nicklas 161     var url = '../LabEnvironmentDisplay.servlet?ID='+App.getSessionId()+'&cmd='+reportType;    
2989 02 Dec 14 olle 162     var fromDate = null;
2989 02 Dec 14 olle 163     var chartVariant = null;
2989 02 Dec 14 olle 164     if (chartVariant == null)
2989 02 Dec 14 olle 165     {
2989 02 Dec 14 olle 166       chartVariant = 'http://givare1.onk.lu.se/';
2989 02 Dec 14 olle 167     }
2989 02 Dec 14 olle 168     var pageTitle = labenvdbevpopup.getQueryParameter('pageTitle');
2989 02 Dec 14 olle 169     var labSensorUrl = labenvdbevpopup.getQueryParameter('labSensorUrl');
2989 02 Dec 14 olle 170     var originDate = labenvdbevpopup.getQueryParameter('originDate');
2989 02 Dec 14 olle 171     originDate = labenvdbevpopup.fetchSimpleDate(originDate);
2989 02 Dec 14 olle 172     if (originDate != null)
2989 02 Dec 14 olle 173     {
2989 02 Dec 14 olle 174       fromDate = originDate;
2989 02 Dec 14 olle 175     }
2989 02 Dec 14 olle 176     if (labSensorUrl != null)
2989 02 Dec 14 olle 177     {
2989 02 Dec 14 olle 178       chartVariant = labSensorUrl;
2989 02 Dec 14 olle 179     }
2989 02 Dec 14 olle 180     if (pageTitle != null) url += '&pagetitle='+pageTitle;
2989 02 Dec 14 olle 181     if (fromDate != null) url += '&fdate='+fromDate;
2989 02 Dec 14 olle 182     if (chartVariant != null) url += '&cvariant='+chartVariant;
2989 02 Dec 14 olle 183
2989 02 Dec 14 olle 184     Wizard.showLoadingAnimation('Generating plots...');
2989 02 Dec 14 olle 185     Wizard.asyncJsonRequest(url, labenvdbevpopup.onPlotGenerated);
2989 02 Dec 14 olle 186   }
2989 02 Dec 14 olle 187   
2989 02 Dec 14 olle 188   labenvdbevpopup.onPlotGenerated = function(response)
2989 02 Dec 14 olle 189   {
3364 02 Jun 15 olle 190     Doc.show('reportSection');
2989 02 Dec 14 olle 191     var frm = document.forms['labenv'];    
2989 02 Dec 14 olle 192     var reportType = 'labenvironmentdailydisplay';
2989 02 Dec 14 olle 193     if (response.status != 'ok')
2989 02 Dec 14 olle 194     {
2989 02 Dec 14 olle 195       setFatalError(response.message);
2989 02 Dec 14 olle 196       return false;
2989 02 Dec 14 olle 197     }
2989 02 Dec 14 olle 198     var report = response.report;
2989 02 Dec 14 olle 199     var permissionDeniedForPatientName = report.permissionDeniedForPatientName;
2989 02 Dec 14 olle 200     var pageTitle = report.pageTitle;
2989 02 Dec 14 olle 201     if (pageTitle == null || pageTitle == '')
2989 02 Dec 14 olle 202     {
2989 02 Dec 14 olle 203       pageTitle = 'LabEnv';
2989 02 Dec 14 olle 204     }
2989 02 Dec 14 olle 205     // Print optional page title
2989 02 Dec 14 olle 206     var pageTitleElement = document.getElementById('pageTitleId');
2989 02 Dec 14 olle 207     pageTitleElement.innerHTML = pageTitle;
2989 02 Dec 14 olle 208     var reportTable;
2989 02 Dec 14 olle 209     var cellElement = document.getElementById('reportdiv');
2989 02 Dec 14 olle 210     if (report != null)
2989 02 Dec 14 olle 211     {
2989 02 Dec 14 olle 212       var storageIntervalInSeconds = labenvdbevpopup.getStorageIntervalInSeconds();
4525 15 Jun 17 nicklas 213       var draw_area_wdt = parseInt(labenvdbevpopup.getQueryParameter('plotWidth')) || 700;
4525 15 Jun 17 nicklas 214       var draw_area_hgt = parseInt(labenvdbevpopup.getQueryParameter('plotHeight')) || 550;
2989 02 Dec 14 olle 215       var draw_scale_factor = 2;
2989 02 Dec 14 olle 216       var jsonStatisticsPlotArray = report.plotStatistics;
2989 02 Dec 14 olle 217       // Draw plots
2989 02 Dec 14 olle 218       document.getElementById("reportdiv").innerHTML="";
2989 02 Dec 14 olle 219       // Write optional page header
2989 02 Dec 14 olle 220       if (pageTitle != null && pageTitle != '')
2989 02 Dec 14 olle 221       {
2989 02 Dec 14 olle 222         // Print optional page headline
2989 02 Dec 14 olle 223         var headlineText = document.createElement('text');
2989 02 Dec 14 olle 224         headlineText.innerHTML = "<h2>" + pageTitle + "</h2><BR>";
2989 02 Dec 14 olle 225         cellElement.appendChild(headlineText);
2989 02 Dec 14 olle 226       }
4525 15 Jun 17 nicklas 227       var originDate = labenvdbevpopup.getQueryParameter('originDate') || Dates.formatDate(new Date());
2989 02 Dec 14 olle 228       for (var plotIndex in jsonStatisticsPlotArray)
2989 02 Dec 14 olle 229       {
2989 02 Dec 14 olle 230         //
2989 02 Dec 14 olle 231         // Get plot JSON data container with extra info and plot data
2989 02 Dec 14 olle 232         var plotJsonDataContainer = jsonStatisticsPlotArray[plotIndex];
2989 02 Dec 14 olle 233         // Get plot JSON extra info and plot data
2989 02 Dec 14 olle 234         var plotChartVariant = plotJsonDataContainer['chartVariant'];
2989 02 Dec 14 olle 235         var plotViewType = plotJsonDataContainer['viewType'];
2989 02 Dec 14 olle 236         var plotOptionalHeadline = plotJsonDataContainer['optionalHeadline'];
2989 02 Dec 14 olle 237         var boxPlotJsonData = plotJsonDataContainer['plotData'];
2989 02 Dec 14 olle 238         // Create plot from plot JSON data
2989 02 Dec 14 olle 239         if (plotOptionalHeadline != null && plotOptionalHeadline != '')
2989 02 Dec 14 olle 240         {
2989 02 Dec 14 olle 241           // Print optional headline
2989 02 Dec 14 olle 242           var headlineText = document.createElement('text');
2989 02 Dec 14 olle 243           headlineText.innerHTML = "<BR>" + plotOptionalHeadline + "<BR>";
2989 02 Dec 14 olle 244           cellElement.appendChild(headlineText);
2989 02 Dec 14 olle 245         }
2989 02 Dec 14 olle 246         var plotKey = plotChartVariant + '_' + plotViewType;
2989 02 Dec 14 olle 247         // Add plot
2989 02 Dec 14 olle 248         var canvasInTable = document.createElement('canvas');
2989 02 Dec 14 olle 249         canvasInTable.setAttribute('id', plotKey);
2989 02 Dec 14 olle 250         canvasInTable.setAttribute('width', draw_area_wdt * draw_scale_factor);
2989 02 Dec 14 olle 251         canvasInTable.setAttribute('height', draw_area_hgt * draw_scale_factor);
4525 15 Jun 17 nicklas 252         canvasInTable.style.width = (draw_area_wdt)+'px';
4525 15 Jun 17 nicklas 253         canvasInTable.style.height = (draw_area_hgt)+'px';
4525 15 Jun 17 nicklas 254         boxPlotJsonData.titleTop = originDate;
2989 02 Dec 14 olle 255         createGraphPlot(boxPlotJsonData, canvasInTable, draw_area_wdt, draw_area_hgt, draw_scale_factor, plotViewType, storageIntervalInSeconds);
2989 02 Dec 14 olle 256         cellElement.appendChild(canvasInTable);          
2989 02 Dec 14 olle 257         canvasInTable.addEventListener('mousemove', labenvdbevpopup.drawCanvasGuidelines, false);
2989 02 Dec 14 olle 258         canvasInTable.addEventListener('mouseleave', labenvdbevpopup.hideCanvasGuidelines, false);
2989 02 Dec 14 olle 259       }
2989 02 Dec 14 olle 260       // Print optional appended info
2989 02 Dec 14 olle 261       var appendedInfo = report.appendedInfo;
2989 02 Dec 14 olle 262       if (appendedInfo != null && appendedInfo != '')
2989 02 Dec 14 olle 263       {
2989 02 Dec 14 olle 264         // Print optional headline
2989 02 Dec 14 olle 265         var infoText = document.createElement('text');
2989 02 Dec 14 olle 266         infoText.innerHTML = "<BR>" + appendedInfo + "<BR>";
2989 02 Dec 14 olle 267         cellElement.appendChild(infoText);
2989 02 Dec 14 olle 268       }
2989 02 Dec 14 olle 269     }
2989 02 Dec 14 olle 270     else
2989 02 Dec 14 olle 271     {
2989 02 Dec 14 olle 272       var messageCell = getTableCellElement(document, 'No values could be found during given period', 'reportheader');
2989 02 Dec 14 olle 273       var messageRow = document.createElement('tr');
2989 02 Dec 14 olle 274       messageRow.appendChild(messageCell);      
2989 02 Dec 14 olle 275       var messageTable = getReportTable();
2989 02 Dec 14 olle 276       messageTable.appendChild(messageRow);
2989 02 Dec 14 olle 277       reportTable = messageTable;      
2989 02 Dec 14 olle 278     }
2989 02 Dec 14 olle 279     Doc.show('goprint');
2989 02 Dec 14 olle 280     Doc.show('gorestart');    
2989 02 Dec 14 olle 281   }
2989 02 Dec 14 olle 282
2989 02 Dec 14 olle 283   labenvdbevpopup.getReportTable = function()
2989 02 Dec 14 olle 284   {
2989 02 Dec 14 olle 285       var reportTable = document.createElement('table');
2989 02 Dec 14 olle 286       reportTable.setAttribute('class','reporttable');
2989 02 Dec 14 olle 287       reportTable.setAttribute('border','1');      
2989 02 Dec 14 olle 288       return reportTable;
2989 02 Dec 14 olle 289   }
2989 02 Dec 14 olle 290   
2989 02 Dec 14 olle 291   labenvdbevpopup.getTableCellElement = function(topDocument, text, clazz, colspan, rowspan)
2989 02 Dec 14 olle 292   {
2989 02 Dec 14 olle 293     if (topDocument != null)
2989 02 Dec 14 olle 294     {
2989 02 Dec 14 olle 295       cellElement = topDocument.createElement('td');
2989 02 Dec 14 olle 296     }
2989 02 Dec 14 olle 297     var cellElement = topDocument.createElement('td');
2989 02 Dec 14 olle 298     text = new String(text);    
2989 02 Dec 14 olle 299     var textArray = text.split("\n");    
2989 02 Dec 14 olle 300     if (textArray.length > 1)
2989 02 Dec 14 olle 301     {  
2989 02 Dec 14 olle 302       for (var i=0;i<textArray.length;i++)
2989 02 Dec 14 olle 303       {        
2989 02 Dec 14 olle 304         if (i>0)cellElement.appendChild(topDocument.createElement('br'));
2989 02 Dec 14 olle 305         cellElement.appendChild(topDocument.createTextNode(textArray[i]));
2989 02 Dec 14 olle 306       }      
2989 02 Dec 14 olle 307     }
2989 02 Dec 14 olle 308     else
2989 02 Dec 14 olle 309     {
2989 02 Dec 14 olle 310       cellElement.appendChild(topDocument.createTextNode(text));
2989 02 Dec 14 olle 311     }
2989 02 Dec 14 olle 312     cellElement.setAttribute('class', clazz);
2989 02 Dec 14 olle 313     if (colspan != null) cellElement.setAttribute('colspan', colspan);
2989 02 Dec 14 olle 314     if (rowspan != null) cellElement.setAttribute('rowspan', rowspan);
2989 02 Dec 14 olle 315     
2989 02 Dec 14 olle 316     return cellElement;
2989 02 Dec 14 olle 317   }
2989 02 Dec 14 olle 318   
2989 02 Dec 14 olle 319   var xGuide;
2989 02 Dec 14 olle 320   var yGuide;
2989 02 Dec 14 olle 321   
2989 02 Dec 14 olle 322   labenvdbevpopup.drawCanvasGuidelines = function(event)
2989 02 Dec 14 olle 323   {
2989 02 Dec 14 olle 324     if (!xGuide)
2989 02 Dec 14 olle 325     {
2989 02 Dec 14 olle 326       xGuide = document.getElementById('x-guide');
2989 02 Dec 14 olle 327       yGuide = document.getElementById('y-guide');
2989 02 Dec 14 olle 328     }
2989 02 Dec 14 olle 329     var canvas = event.target;
2989 02 Dec 14 olle 330     var centerX = event.clientX;
2989 02 Dec 14 olle 331     var centerY = event.clientY;
3364 02 Jun 15 olle 332     var canvasPos = Doc.getElementPosition(canvas);
4526 19 Jun 17 nicklas 333     var startX = canvasPos.left+60;
4526 19 Jun 17 nicklas 334     var widthX = canvasPos.width-120;
4526 19 Jun 17 nicklas 335     var startY = canvasPos.top+65;
4526 19 Jun 17 nicklas 336     var heightY = canvasPos.height-120;
2989 02 Dec 14 olle 337     if (centerY < startY || centerY > startY+heightY)
2989 02 Dec 14 olle 338     {
2989 02 Dec 14 olle 339       // Hide when mouse is in the text area below or over the plot
2989 02 Dec 14 olle 340       yGuide.style.display = 'none';
2989 02 Dec 14 olle 341     }
2989 02 Dec 14 olle 342     else
2989 02 Dec 14 olle 343     {
2989 02 Dec 14 olle 344       yGuide.style.top = (centerY-2) + 'px';
2989 02 Dec 14 olle 345       yGuide.style.left = startX + 'px';
2989 02 Dec 14 olle 346       yGuide.style.width = widthX + 'px';
2989 02 Dec 14 olle 347       yGuide.style.display = 'block';
2989 02 Dec 14 olle 348     }
2989 02 Dec 14 olle 349     if (centerX < startX || centerX > startX + widthX)
2989 02 Dec 14 olle 350     {
2989 02 Dec 14 olle 351       // Hide when mouse is in the text area to the left or right of the plot
2989 02 Dec 14 olle 352       xGuide.style.display = 'none';
2989 02 Dec 14 olle 353     }
2989 02 Dec 14 olle 354     else
2989 02 Dec 14 olle 355     {
3364 02 Jun 15 olle 356       // Avoid drawing outside the avilable height (causes an extra pair of scroll bars)
3364 02 Jun 15 olle 357       var yLimit = App.getWindowPosition().height;
2989 02 Dec 14 olle 358       if (startY+heightY > yLimit)
2989 02 Dec 14 olle 359       {
2989 02 Dec 14 olle 360         heightY = yLimit-startY;
2989 02 Dec 14 olle 361       }
2989 02 Dec 14 olle 362       xGuide.style.top = startY + 'px';
2989 02 Dec 14 olle 363       xGuide.style.left = (centerX-2) + 'px';
2989 02 Dec 14 olle 364       xGuide.style.height = heightY + 'px';
2989 02 Dec 14 olle 365       xGuide.style.display = 'block';
2989 02 Dec 14 olle 366     }
2989 02 Dec 14 olle 367
2989 02 Dec 14 olle 368   }
2989 02 Dec 14 olle 369   
2989 02 Dec 14 olle 370   labenvdbevpopup.hideCanvasGuidelines = function(event)
2989 02 Dec 14 olle 371   {
2989 02 Dec 14 olle 372     xGuide.style.display = 'none';
2989 02 Dec 14 olle 373     yGuide.style.display = 'none';
2989 02 Dec 14 olle 374   }
2989 02 Dec 14 olle 375   
2989 02 Dec 14 olle 376   labenvdbevpopup.printVersion = function()
2989 02 Dec 14 olle 377   {
2989 02 Dec 14 olle 378     var printNote = '<b>Note!</b> For better printing set page orientation to <i>portrait</i>.';
2989 02 Dec 14 olle 379     printNote += ' Scale down to <i>90%</i> to fit 2 plots per page.';
3735 10 Feb 16 olle 380     LabEnv.openPrintWindow('reportcell', 'Lab environment ', 'portrait', printNote, '../', 'report.css');
2989 02 Dec 14 olle 381   }
2989 02 Dec 14 olle 382
2989 02 Dec 14 olle 383   labenvdbevpopup.cancelPrint = function()
2989 02 Dec 14 olle 384   {
2989 02 Dec 14 olle 385     window.close();
2989 02 Dec 14 olle 386   }
2989 02 Dec 14 olle 387   
2989 02 Dec 14 olle 388   return labenvdbevpopup;
2989 02 Dec 14 olle 389 }();
2989 02 Dec 14 olle 390
2989 02 Dec 14 olle 391 Doc.onLoad(LabEnvDbEvPopup.initPage);
2989 02 Dec 14 olle 392