<?php
require_once("/volume1/web/GACHES/graphs/lib/phpchartdir.php");
require_once ('/volume1/web/GACHES/graphs/donnees.php');
RecupereDonnees();
#
# Initialize the WebChartViewer when the page is first loaded
#
function initViewer(&$viewer) {
//Pour récupérer le creneau que l'on a dans la base
global $dateMini;
global $nbLigne;
//construction de la période en fonction des données que l'on à dans la base
$startAnnee = date('Y', $dateMini);
$startMois = date('m', $dateMini);
$startJour = date('d', $dateMini);
$startHeure = date('H', $dateMini);
$startMinute = date('i', $dateMini);
$startSeconde = date('s', $dateMini);
# The full x-axis range is from Jan 1, 2007 to Jan 1, 2012
$startDate = chartTime($startAnnee, $startMois, $startJour, $startHeure, $startMinute, $startSeconde);
$endDate = chartTime(date('Y'),date('m'),date('d'), date('H'), date('i'), date('s'));
$viewer->setFullRange("x", $startDate, $endDate);
# Initialize the view port to show the last 366 days (out of 1826 days)
#Initialise le graph sur une largeur de 180 données parmis toutes les données
$viewer->setViewPortWidth(180 / $nbLigne);
$viewer->setViewPortLeft(1 - $viewer->getViewPortWidth());
# Set the maximum zoom to 10 days (out of 1826 days)
# Défini le zoom maximum 1 donnée parmis toutes les données
$viewer->setZoomInWidthLimit(1 / $nbLigne);
}
#
# Create a random table for demo purpose.
#
function getRandomTable() {
$r = new RanTable(127, 4, 1000);
$r->setDateCol(0, chartTime(2016, 10, 1), 86400);
$r->setCol(1, 150, -10, 10);
$r->setCol(2, 200, -10, 10);
$r->setCol(3, 250, -8, 8);
return $r;
}
#
# Draw the chart
#
function drawChart(&$viewer) {
global $timeStamps;
global $dataSeriesA;
global $dataSeriesB;
global $dataSeriesC;
global $dataSeriesD;
global $dataSeriesE;
global $dataSeriesF;
global $dataSeriesG;
global $dataSeriesH;
global $dataSeriesI;
global $dataSeriesJ;
global $dataSeriesK;
global $dataSeriesL;
global $dataSeriesM;
global $dataSeriesN;
# Determine the visible x-axis range
$viewPortStartDate = $viewer->getValueAtViewPort("x", $viewer->getViewPortLeft());
$viewPortEndDate = $viewer->getValueAtViewPort("x", $viewer->getViewPortLeft() +
$viewer->getViewPortWidth());
# We need to get the data within the visible x-axis range. In real code, this can be by using a
# database query or some other means as specific to the application. In this demo, we just
# generate a random data table, and then select the data within the table.
//$r = getRandomTable();
// print_r($r->getCol(0));
# Select the data for the visible date range viewPortStartDate to viewPortEndDate. It is
# possible there is no data point at exactly viewPortStartDate or viewPortEndDate. In this case,
# we also need the data points that are just outside the visible date range to "overdraw" the
# line a little bit (the "overdrawn" part will be clipped to the plot area) In this demo, we do
# this by adding a one day margin to the date range when selecting the data.
//$r->selectDate(0, $viewPortStartDate - 86400, $viewPortEndDate + 86400);
# The selected data from the random data table
// $timeStamps = $r->getCol(0);
// $dataSeriesA = $r->getCol(1);
// $dataSeriesB = $r->getCol(2);
// $dataSeriesC = $r->getCol(3);
// print_r($r->getCol(0));
// print_r($timeStamps);
// print_r($dataSeriesA);
#
# Now we have obtained the data, we can plot the chart.
#
#================================================================================
# Configure overall chart appearance.
#================================================================================
# Create an XYChart object of size 640 x 400 pixels
$c = new XYChart(1100, 800);
# Set the plotarea at (55, 55) with width 80 pixels less than chart width, and height 90 pixels
# less than chart height. Use a vertical gradient from light blue (f0f6ff) to sky blue (a0c0ff)
# as background. Set border to transparent and grid lines to white (ffffff).
$c->setPlotArea(55, 55, $c->getWidth() - 80, $c->getHeight() - 100, $c->linearGradientColor(0,
55, 0, $c->getHeight() - 35, 0xf0f6ff, 0xa0c0ff), -1, Transparent, 0xffffff, 0xffffff);
# As the data can lie outside the plotarea in a zoomed chart, we need to enable clipping.
$c->setClipping();
# Add a title box using dark grey (0x333333) 18pt Arial Bold font
$c->addTitle(" Température(s) gâche(s)", "arialbd.ttf", 15, 0x333333);
if ($viewer->isAttachmentRequest()) {
$b = $c->addLegend(55, 28, false, "arialbd.ttf", 10);
$b->setBackground(Transparent, Transparent);
$b->setLineStyleKey();
}
# Set the x and y axis stems to transparent and the label font to 10pt Arial
$c->xAxis->setColors(Transparent);
$c->yAxis->setColors(Transparent);
$c->xAxis->setLabelStyle("arial.ttf", 10);
$c->yAxis->setLabelStyle("arial.ttf", 10);
# Add axis title using 10pt Arial Bold font
$c->yAxis->setTitle("Température (C°)", "arialbd.ttf", 10);
#================================================================================
# Add data to chart
#================================================================================
#
# In this example, we represent the data by lines. You may modify the code below to use other
# layer types (areas, scatter plot, etc).
#
# Add a line layer for the lines, using a line width of 2 pixels
$layer = $c->addLineLayer2();
$layer->setLineWidth(2);
# In this demo, we do not have too many data points. In real code, the chart may contain a lot
# of data points when fully zoomed out - much more than the number of horizontal pixels in this
# plot area. So it is a good idea to use fast line mode.
$layer->setFastLineMode();
# Add up to 3 data series to a line layer, depending on whether the user has selected the data
# series.
$layer->setXData($timeStamps);
if ($viewer->getCustomAttr("data0CheckBox") != "F") {
$layer->addDataSet($dataSeriesA, 0xB0CC99, "Proc SDR");
}
if ($viewer->getCustomAttr("data1CheckBox") != "F") {
$layer->addDataSet($dataSeriesB, 0x677E52, "Boite SDR");
}
if ($viewer->getCustomAttr("data2CheckBox") != "F") {
$layer->addDataSet($dataSeriesC, 0x046380, "Proc 2ème");
}
if ($viewer->getCustomAttr("data3CheckBox") != "F") {
$layer->addDataSet($dataSeriesD, 0x002F2F, "Boite 2ème");
}
if ($viewer->getCustomAttr("data4CheckBox") != "F") {
$layer->addDataSet($dataSeriesE, 0x457DBB, "Proc 1er Dr");
}
if ($viewer->getCustomAttr("data5CheckBox") != "F") {
$layer->addDataSet($dataSeriesF, 0x5F8CA3, "Boite 1er Dr");
}
if ($viewer->getCustomAttr("data6CheckBox") != "F") {
$layer->addDataSet($dataSeriesG, 0x52251C, "Proc 1er G");
}
if ($viewer->getCustomAttr("data7CheckBox") != "F") {
$layer->addDataSet($dataSeriesH, 0x795344, "Boite 1er G");
}
if ($viewer->getCustomAttr("data8CheckBox") != "F") {
$layer->addDataSet($dataSeriesI, 0xD45E3A, "Proc RDC");
}
if ($viewer->getCustomAttr("data9CheckBox") != "F") {
$layer->addDataSet($dataSeriesJ, 0x940602, "Boite RDC");
}
if ($viewer->getCustomAttr("data10CheckBox") != "F") {
$layer->addDataSet($dataSeriesK, 0x132959, "Proc Barrière");
}
if ($viewer->getCustomAttr("data11CheckBox") != "F") {
$layer->addDataSet($dataSeriesL, 0x234CA5, "Boite Barrière");
}
if ($viewer->getCustomAttr("data12CheckBox") != "F") {
$layer->addDataSet($dataSeriesM, 0xFDD131, "Proc Poubelles");
}
if ($viewer->getCustomAttr("data13CheckBox") != "F") {
$layer->addDataSet($dataSeriesN, 0xF9A41E, "Boite Poubelles");
}
#================================================================================
# Configure axis scale and labelling
#================================================================================
# Set the x-axis as a date/time axis with the scale according to the view port x range.
$viewer->syncDateAxisWithViewPort("x", $c->xAxis);
# For the automatic y-axis labels, set the minimum spacing to 30 pixels.
$c->yAxis->setTickDensity(30);
#
# In this demo, the time range can be from a few years to a few days. We demonstrate how to set
# up different date/time format based on the time range.
#
# If all ticks are yearly aligned, then we use "yyyy" as the label format.
$c->xAxis->setFormatCondition("align", 360 * 86400);
$c->xAxis->setLabelFormat("{value|yyyy}");
# If all ticks are monthly aligned, then we use "mmm yyyy" in bold font as the first label of a
# year, and "mmm" for other labels.
$c->xAxis->setFormatCondition("align", 30 * 86400);
$c->xAxis->setMultiFormat(StartOfYearFilter(), "<*font=bold*>{value|mmm<*br*>yyyy}",
AllPassFilter(), "{value|mmm}");
# If all ticks are daily algined, then we use "mmm dd<*br*>yyyy" in bold font as the first label
# of a year, and "mmm dd" in bold font as the first label of a month, and "dd" for other labels.
$c->xAxis->setFormatCondition("align", 86400);
$c->xAxis->setMultiFormat(StartOfYearFilter(),
"<*block,halign=left*><*font=bold*>{value|dd mmm<*br*>yyyy}", StartOfMonthFilter(),
"<*font=bold*>{value|mmm dd}");
$c->xAxis->setMultiFormat2(AllPassFilter(), "{value|dd}");
# For all other cases (sub-daily ticks), use "hh:nn<*br*>mmm dd" for the first label of a day,
# and "hh:nn" for other labels.
$c->xAxis->setFormatCondition("else");
$c->xAxis->setMultiFormat(StartOfDayFilter(), "<*font=bold*>{value|hh:nn <*br*> dd mmm}",
AllPassFilter(), "{value|hh:nn}");
#================================================================================
# Step 5 - Output the chart
#================================================================================
if ($viewer->isAttachmentRequest()) {
# Output as PDF attachment
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\\"Graph_temperature.pdf\\"");
print($c->makeChart2(PDF));
exit();
} else {
# Output the chart
$chartQuery = $c->makeSession($viewer->getId());
# Set the chart URL to the viewer
$viewer->setImageUrl("getchart.php?".$chartQuery);
# Output Javascript chart model to the browser to support tracking cursor
$viewer->setChartModel($c->getJsChartModel());
}
}
function drawFullChart(&$vp, &$viewer) {
global $startDate, $endDate;
//Afin de pouvoir récupérer les variable provenant de l'extérieur de la fonction
global $timeStamps;
global $dataSeriesA;
global $dataSeriesB;
global $dataSeriesC;
global $dataSeriesD;
global $dataSeriesE;
global $dataSeriesF;
global $dataSeriesG;
global $dataSeriesH;
global $dataSeriesI;
global $dataSeriesJ;
global $dataSeriesK;
global $dataSeriesL;
global $dataSeriesM;
global $dataSeriesN;
# We need to draw a small thumbnail chart for the full data range. The simplest method is to
# simply get the full data to draw the chart. If the full data are very large (eg. millions of
# points), for such a small thumbnail chart, it is often acceptable to just retreive a small
# sample of the data.
#
# In this example, there are only around 5500 points for the 3 data series. This amount is not
# large to ChartDirector, so we simply pass all the data to ChartDirector.
//$r = getRandomTable();
# Get all the data from the random table
// $timeStamps = $r->getCol(0);
// $dataSeriesA = $r->getCol(1);
// $dataSeriesB = $r->getCol(2);
// $dataSeriesC = $r->getCol(3);
# Create an XYChart object of size 640 x 60 pixels
$c = new XYChart(1100, 60);
# Set the plotarea with the same horizontal position as that in the main chart for alignment.
# The vertical position is set to equal to the chart height.
$c->setPlotArea(55, 0, $c->getWidth() - 80, $c->getHeight() - 1, 0xc0d8ff, -1, 0x888888,
Transparent, 0xffffff);
# Set the x axis stem to transparent and the label font to 10pt Arial
$c->xAxis->setColors(Transparent);
$c->xAxis->setLabelStyle("arial.ttf", 10);
# Put the x-axis labels inside the plot area by setting a negative label gap. Use
# setLabelAlignment to put the label at the right side of the tick.
$c->xAxis->setLabelGap(-10);
$c->xAxis->setLabelAlignment(1);
//--
#
# In this demo, the time range can be from a few years to a few days. We demonstrate how to set
# up different date/time format based on the time range.
#
# If all ticks are yearly aligned, then we use "yyyy" as the label format.
$c->xAxis->setFormatCondition("align", 360 * 86400);
$c->xAxis->setLabelFormat("{value|yyyy}");
# If all ticks are monthly aligned, then we use "mmm yyyy" in bold font as the first label of a
# year, and "mmm" for other labels.
$c->xAxis->setFormatCondition("align", 30 * 86400);
$c->xAxis->setMultiFormat(StartOfYearFilter(), "<*font=bold*>{value|mmm<*br*>yyyy}",
AllPassFilter(), "{value|mmm}");
# If all ticks are daily algined, then we use "mmm dd<*br*>yyyy" in bold font as the first label
# of a year, and "mmm dd" in bold font as the first label of a month, and "dd" for other labels.
$c->xAxis->setFormatCondition("align", 86400);
$c->xAxis->setMultiFormat(StartOfYearFilter(),
"<*block,halign=left*><*font=bold*>{value|dd mmm<*br*>yyyy}", StartOfMonthFilter(),
"<*font=bold*>{value|mmm dd}");
$c->xAxis->setMultiFormat2(AllPassFilter(), "{value|dd}");
# For all other cases (sub-daily ticks), use "hh:nn<*br*>mmm dd" for the first label of a day,
# and "hh:nn" for other labels.
$c->xAxis->setFormatCondition("else");
$c->xAxis->setMultiFormat(StartOfDayFilter(), "<*font=bold*>{value|hh:nn <*br*> dd mmm}",
AllPassFilter(), "{value|hh:nn}");
//--
# Set the y axis stem and labels to transparent (that is, hide the labels)
$c->yAxis->setColors(Transparent, Transparent);
# Add a line layer for the lines with fast line mode enabled
$layer = $c->addLineLayer2();
$layer->setFastLineMode();
# Now we add the 3 data series to a line layer, using the color red (0xff3333), green (0x008800)
# and blue (0x3333cc)
$layer->setXData($timeStamps);
if ($viewer->getCustomAttr("data0CheckBox") != "F") {
$layer->addDataSet($dataSeriesA, 0xB0CC99, "Proc SDR");
}
if ($viewer->getCustomAttr("data1CheckBox") != "F") {
$layer->addDataSet($dataSeriesB, 0x677E52, "Boite SDR");
}
if ($viewer->getCustomAttr("data2CheckBox") != "F") {
$layer->addDataSet($dataSeriesC, 0x046380, "Proc 2ème");
}
if ($viewer->getCustomAttr("data3CheckBox") != "F") {
$layer->addDataSet($dataSeriesD, 0x002F2F, "Boite 2ème");
}
if ($viewer->getCustomAttr("data4CheckBox") != "F") {
$layer->addDataSet($dataSeriesE, 0x457DBB, "Proc 1er Dr");
}
if ($viewer->getCustomAttr("data5CheckBox") != "F") {
$layer->addDataSet($dataSeriesF, 0x5F8CA3, "Boite 1er Dr");
}
if ($viewer->getCustomAttr("data6CheckBox") != "F") {
$layer->addDataSet($dataSeriesG, 0x52251C, "Proc 1er G");
}
if ($viewer->getCustomAttr("data7CheckBox") != "F") {
$layer->addDataSet($dataSeriesH, 0x795344, "Boite 1er G");
}
if ($viewer->getCustomAttr("data8CheckBox") != "F") {
$layer->addDataSet($dataSeriesI, 0xD45E3A, "Proc RDC");
}
if ($viewer->getCustomAttr("data9CheckBox") != "F") {
$layer->addDataSet($dataSeriesJ, 0x940602, "Boite RDC");
}
if ($viewer->getCustomAttr("data10CheckBox") != "F") {
$layer->addDataSet($dataSeriesK, 0x132959, "Proc Barrière");
}
if ($viewer->getCustomAttr("data11CheckBox") != "F") {
$layer->addDataSet($dataSeriesL, 0x234CA5, "Boite Barrière");
}
if ($viewer->getCustomAttr("data12CheckBox") != "F") {
$layer->addDataSet($dataSeriesM, 0xFDD131, "Proc Poubelles");
}
if ($viewer->getCustomAttr("data13CheckBox") != "F") {
$layer->addDataSet($dataSeriesN, 0xF9A41E, "Boite Poubelles");
}
# The x axis scales should reflect the full range of the view port
// $c->xAxis->setDateScale($viewer->getValueAtViewPort("x", 0), $viewer->getValueAtViewPort("x", 1)
// );
$c->xAxis->setDateScale($startDate, $endDate);
# For the automatic x-axis labels, set the minimum spacing to 75 pixels.
$c->xAxis->setTickDensity(75);
# For the auto-scaled y-axis, as we hide the labels, we can disable axis rounding. This can make
# the axis scale fit the data tighter.
$c->yAxis->setRounding(false, false);
# Output the chart
$chartQuery = $c->makeSession($vp->getId());
# Set the chart URL and chart metrics to the viewport control
$vp->setImageUrl("getchart.php?".$chartQuery);
$vp->setChartMetrics($c->getChartMetrics());
}
#
# This script handles both the full page request, as well as the subsequent partial updates (AJAX
# chart updates). We need to determine the type of request first before we processing it.
#
# Create the WebChartViewer object
$viewer = new WebChartViewer("chart1");
if ($viewer->isPartialUpdateRequest()) {
# Is a partial update request. Draw the chart and perform a partial response.
if ($viewer->getSenderClientId() == "fullchart1") {
# Is updating the fullchart
$viewer = new WebChartViewer("fullchart1");
drawFullChart($viewer, $viewer);
}
else
drawChart($viewer);
print($viewer->partialUpdateChart());
exit();
}
#
# If the code reaches here, it is a full page request.
#
# Initialize the WebChartViewer and draw the chart.
initViewer($viewer);
drawChart($viewer);
# Create the WebViewPortControl object
$viewPortCtrl = new WebViewPortControl("fullchart1");
drawFullChart($viewPortCtrl, $viewer);
?>
<!DOCTYPE html>
<html>
<head>
<title>Temperatures</title>
<script type="text/javascript" src="cdjcv.js"></script>
<style type="text/css">
.chartButton { font:12px Verdana; border-bottom:#000000 1px solid; padding:5px; cursor:pointer;}
.chartButtonSpacer { font:12px Verdana; border-bottom:#000000 1px solid; padding:5px;}
.chartButton:hover { box-shadow:inset 0px 0px 0px 2px #444488; }
.chartButtonPressed { background-color: #CCFFCC; }
</style>
</head>
<body style="margin:0px;">
<script type="text/javascript">
//
// Execute the following initialization code after the web page is loaded
//
JsChartViewer.addEventListener(window, 'load', function() {
// Update the chart when the view port has changed (eg. when the user zooms in using the mouse)
var viewer = JsChartViewer.get('<?php echo $viewer->getId()?>');
viewer.attachHandler("ViewPortChanged", viewer.partialUpdate);
var vpViewer = JsChartViewer.get('<?php echo $viewPortCtrl->getId()?>');
vpViewer.attachHandler("ViewPortChanged", vpViewer.partialUpdate);
// Initialize the navigation pad
JsChartViewer.get('<?php echo $viewPortCtrl->getId()?>');
JsViewPortControl.get('<?php echo $viewPortCtrl->getId()?>').setViewer(viewer);
// The Update Chart can also trigger a view port changed event to update the chart.
document.getElementById("SubmitButton").onclick = function() {
viewer.raiseViewPortChangedEvent();
vpViewer.raiseViewPortChangedEvent();
return false;
};
// Before sending the update request to the server, we include the state of the check boxes as custom
// attributes. The server side charting code will use these attributes to decide the data sets to draw.
viewer.attachHandler("PreUpdate", function() {
var checkBoxes = ["data0CheckBox", "data1CheckBox", "data2CheckBox", "data3CheckBox", "data4CheckBox", "data5CheckBox", "data6CheckBox", "data7CheckBox", "data8CheckBox", "data9CheckBox", "data10CheckBox", "data11CheckBox", "data12CheckBox", "data13CheckBox"];
for (var i = 0; i < checkBoxes.length; ++i)
{
viewer.setCustomAttr(checkBoxes[i], document.getElementById(checkBoxes[i]).checked ? "T" : "F");
vpViewer.setCustomAttr(checkBoxes[i], document.getElementById(checkBoxes[i]).checked ? "T" : "F");
}
});
// Draw track cursor when mouse is moving over plotarea or if the chart updates
viewer.attachHandler(["MouseMovePlotArea", "TouchStartPlotArea", "TouchMovePlotArea", "PostUpdate",
"Now", "ChartMove"], function(e) {
this.preventDefault(e); // Prevent the browser from using touch events for other actions
trackLineLegend(viewer, viewer.getPlotAreaMouseX());
});
});
//
// Draw track line with legend
//
function trackLineLegend(viewer, mouseX)
{
// Remove all previously drawn tracking object
viewer.hideObj("all");
// The chart and its plot area
var c = viewer.getChart();
var plotArea = c.getPlotArea();
// Get the data x-value that is nearest to the mouse, and find its pixel coordinate.
var xValue = c.getNearestXValue(mouseX);
var xCoor = c.getXCoor(xValue);
if (xCoor == null)
return;
// Draw a vertical track line at the x-position
viewer.drawVLine("trackLine", xCoor, plotArea.getTopY(), plotArea.getBottomY(), "black 1px dotted");
// Array to hold the legend entries
var legendEntries = [];
// Iterate through all layers to build the legend array
for (var i = 0; i < c.getLayerCount(); ++i)
{
var layer = c.getLayerByZ(i);
// The data array index of the x-value
var xIndex = layer.getXIndexOf(xValue);
// Iterate through all the data sets in the layer
for (var j = 0; j < layer.getDataSetCount(); ++j)
{
var dataSet = layer.getDataSetByZ(j);
// We are only interested in visible data sets with names, as they are required for legend entries.
var dataName = dataSet.getDataName();
var color = dataSet.getDataColor();
if ((!dataName) || (color == null))
continue;
// Build the legend entry, consist of a colored square box, the name and the data value.
var dataValue = dataSet.getValue(xIndex);
legendEntries.push("<nobr>" + viewer.htmlRect(7, 7, color) + " " + dataName + ": " +
((dataValue == null) ? "N/A" : dataValue.toPrecision(4)) + viewer.htmlRect(20, 0) + "</nobr> ");
// Draw a track dot for data points within the plot area
var yCoor = c.getYCoor(dataSet.getPosition(xIndex), dataSet.getUseYAxis());
if ((yCoor != null) && (yCoor >= plotArea.getTopY()) && (yCoor <= plotArea.getBottomY()))
{
viewer.showTextBox("dataPoint" + i + "_" + j, xCoor, yCoor, JsChartViewer.Center,
viewer.htmlRect(7, 7, color));
}
}
}
// Create the legend by joining the legend entries.
var legend = "<nobr>[" + c.xAxis().getFormattedLabel(xValue, "mm/dd/yyyy") + "]" + viewer.htmlRect(20, 0) +
"</nobr> " + legendEntries.reverse().join("");
// Display the legend on the top of the plot area
viewer.showTextBox("legend", plotArea.getLeftX(), plotArea.getTopY(), JsChartViewer.BottomLeft, legend,
"padding:0px 0px 3px 3px; font:bold 13px Arial; -webkit-text-size-adjust:100%;");
}
//
// This method is called when the user clicks on the Pointer, Zoom In or Zoom Out buttons
//
function setMouseMode(mode)
{
var viewer = JsChartViewer.get('<?php echo $viewer->getId()?>');
if (mode == viewer.getMouseUsage())
mode = JsChartViewer.Default;
// Set the button color based on the selected mouse mode
document.getElementById("scrollButton").className = "chartButton" +
((mode == JsChartViewer.Scroll) ? " chartButtonPressed" : "");
document.getElementById("zoomInButton").className = "chartButton" +
((mode == JsChartViewer.ZoomIn) ? " chartButtonPressed" : "");
document.getElementById("zoomOutButton").className = "chartButton" +
((mode == JsChartViewer.ZoomOut) ? " chartButtonPressed" : "");
// Set the mouse mode
viewer.setMouseUsage(mode);
}
//
// This method is called when the user clicks on the buttons that selects the last NN days
//
function setTimeRange(duration)
{
var viewer = JsChartViewer.get('<?php echo $viewer->getId()?>');
// Set the view port width to represent the required duration (as a ratio to the total x-range)
viewer.setViewPortWidth(Math.min(1,
duration / (viewer.getValueAtViewPort("x", 1) - viewer.getValueAtViewPort("x", 0))));
// Set the view port left so that the view port is moved to show the latest data
viewer.setViewPortLeft(1 - viewer.getViewPortWidth());
// Trigger a view port change event
viewer.raiseViewPortChangedEvent();
}
</script>
<form method="post" id="ZoomScrollTrack" runat="server">
<table cellspacing="0" cellpadding="0" style="border:black 1px solid;">
<tr>
<td align="right" colspan="2" style="background:#457DBB; color:#ffff00; padding:0px 4px 2px 0px; text-align:center;">
<a style="color:#FFFF00; font:italic bold 10pt Arial; text-decoration:none" href="http://www.hemiris.fr/">
Supervision de la température des systemes d'ouverture à HEMIRIS
</a>
</td>
</tr>
<tr valign="top">
<td style="width:150px; background:#C3D9E0;">
<div style="width:150px">
<!-- The following table is to create 3 cells for 3 buttons to control the mouse usage mode. -->
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td class="chartButtonSpacer">
<div style="padding:2px"> </div>
</td>
</tr>
<tr>
<td class="chartButton" id="scrollButton" onclick="setMouseMode(JsChartViewer.Scroll)"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="scrollew.gif" style="vertical-align:middle" alt="Drag" /> Déplacer graph
</td>
</tr>
<tr>
<td class="chartButton" id="zoomInButton" onclick="setMouseMode(JsChartViewer.ZoomIn)"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="zoomInIcon.gif" style="vertical-align:middle" alt="Zoom In" /> Zoom +
</td>
</tr>
<tr>
<td class="chartButton" id="zoomOutButton" onclick="setMouseMode(JsChartViewer.ZoomOut)"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="zoomOutIcon.gif" style="vertical-align:middle" alt="Zoom Out" /> Zoom -
</td>
</tr>
<tr>
<td class="chartButtonSpacer">
<div style="padding:2px"> </div>
</td>
</tr>
<tr>
<td class="chartButton" onclick="setTimeRange(1 * 3600);"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="goto.gif" style="vertical-align:middle" alt="Last 30 days" /> Dernière heure
</td>
</tr>
<tr>
<td class="chartButton" onclick="setTimeRange(1 * 86400);"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="goto.gif" style="vertical-align:middle" alt="Last 90 days" /> Dernier jour
</td>
</tr>
<tr>
<td class="chartButton" onclick="setTimeRange(31 * 86400);"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="goto.gif" style="vertical-align:middle" alt="Last Year" /> Dernier mois
</td>
</tr>
<tr>
<td class="chartButton" onclick="setTimeRange(1E15);"
ontouchstart="this.onclick(event); event.preventDefault();">
<img src="goto.gif" style="vertical-align:middle" alt="All Time" /> Toutes les données
</td>
</tr>
<tr>
<div style="font:9pt Verdana; line-height:1.5; padding-top:25px">
<input id="data0CheckBox" type="checkbox" checked="checked" /> Proc SDR<br />
<input id="data1CheckBox" type="checkbox" checked="checked" /> Boitier SDR<br />
<input id="data2CheckBox" type="checkbox" checked="checked" /> Proc 2ème<br />
<input id="data3CheckBox" type="checkbox" checked="checked" /> Boitier 2ème<br />
<input id="data4CheckBox" type="checkbox" checked="checked" /> Proc 1er Droite<br />
<input id="data5CheckBox" type="checkbox" checked="checked" /> Boitier 1er Droite<br />
<input id="data6CheckBox" type="checkbox" checked="checked" /> Proc 1er Gauche<br />
<input id="data7CheckBox" type="checkbox" checked="checked" /> Boitier 1er Gauche<br />
<input id="data8CheckBox" type="checkbox" checked="checked" /> Proc RDC<br />
<input id="data9CheckBox" type="checkbox" checked="checked" /> Boitier RDC<br />
<input id="data10CheckBox" type="checkbox" checked="checked" /> Proc Barrière<br />
<input id="data11CheckBox" type="checkbox" checked="checked" /> Boitier Barrière<br />
<input id="data12CheckBox" type="checkbox" checked="checked" /> Proc Poubelles<br />
<input id="data13CheckBox" type="checkbox" checked="checked" /> Boitier Poubelles<br />
</div>
</tr>
<div style="font:13pt Verdana; margin-top:15px; margin-left:5px; text-align:center; width:124px;">
<input type="submit" id="SubmitButton" name="SubmitButton" value="Afficher graphes"></input>
</div>
<br />
<br />
</table>
<br />
<br />
<div>
<input type="button" value="Créer PDF" style="font:13px Verdana; width:110px;margin-left:10px; "
onclick="JsChartViewer.get('<?php echo $viewer->getId()?>').partialUpdateAsAttachment();" />
</div>
</div>
</td>
<td style="border-left:black 1px solid; padding:10px 5px 10px 5px;">
<!-- ****** Here is the chart image ****** -->
<?php echo $viewer->renderHTML()?><br />
<!-- ****** Here is the viewport control ****** -->
<?php echo $viewPortCtrl->renderHTML()?>
</td>
</tr>
</table>
</form>
</body>
</html>
|