Escape GET variables centrally
[busui.git] / labs / networkstats.php
blob:a/labs/networkstats.php -> blob:b/labs/networkstats.php
<?php <?php
include ('../include/common.inc.php'); include ('../include/common.inc.php');
include_header("Route Statistics", "networkstats") include_header("Route Statistics", "networkstats")
?> ?>
<script type="text/javascript" src="js/flotr/lib/prototype-1.6.0.2.js"></script> <script type="text/javascript" src="../js/flotr/lib/prototype-1.6.0.2.js"></script>
   
<!--[if IE]> <!--[if IE]>
   
<script type="text/javascript" src="js/flotr/lib/excanvas.js"></script> <script type="text/javascript" src="../js/flotr/lib/excanvas.js"></script>
   
<script type="text/javascript" src="js/flotr/lib/base64.js"></script> <script type="text/javascript" src="../js/flotr/lib/base64.js"></script>
   
<![endif]--> <![endif]-->
   
<script type="text/javascript" src="js/flotr/lib/canvas2image.js"></script> <script type="text/javascript" src="../js/flotr/lib/canvas2image.js"></script>
   
<script type="text/javascript" src="js/flotr/lib/canvastext.js"></script> <script type="text/javascript" src="../js/flotr/lib/canvastext.js"></script>
   
<script type="text/javascript" src="js/flotr/flotr.debug-0.2.0-alpha_radar1.js"></script> <script type="text/javascript" src="../js/flotr/flotr.debug-0.2.0-alpha_radar1.js"></script>
<form method="get" action="networkstats.php"> <form method="get" action="networkstats.php">
<select id="routeid" name="routeid"> <select id="routeid" name="routeid">
<?php <?php
foreach (getRoutes() as $route) { foreach (getRoutes() as $route) {
echo "<option value=\"{$route['route_id']}\">{$route['route_short_name']} {$route['route_long_name']}</option>"; echo "<option value=\"{$route['route_id']}\">{$route['route_short_name']} {$route['route_long_name']}</option>";
} }
?> ?>
</select> </select>
<input type="submit" value="View"/> <input type="submit" value="View"/>
</form> </form>
   
<?php <?php
// middle of graph = 6am // middle of graph = 6am
$adjustFactor = 0; $adjustFactor = 0;
$route = getRoute($routeid); $route = getRoute($routeid);
echo "<h1>{$route['route_short_name']} {$route['route_long_name']}</h1>"; echo "<h1>{$route['route_short_name']} {$route['route_long_name']}</h1>";
foreach (getRouteTrips($routeid) as $key => $trip) { foreach (getRouteTrips($routeid) as $key => $trip) {
$dLabel[$key] = $trip['arrival_time']; $dLabel[$key] = $trip['arrival_time'];
if ($key == 0) { if ($key == 0) {
$time = strtotime($trip['arrival_time']); $time = strtotime($trip['arrival_time']);
$adjustFactor = (date("G", $time) * 3600); $adjustFactor = (date("G", $time) * 3600);
} }
$tripStops = viaPoints($trip['trip_id']); $tripStops = viaPoints($trip['trip_id']);
foreach ($tripStops as $i => $stop) { foreach ($tripStops as $i => $stop) {
if ($key == 0) { if ($key == 0) {
$dTicks[$i] = $stop['stop_name']; $dTicks[$i] = $stop['stop_name'];
} }
$time = strtotime($stop['arrival_time']); $time = strtotime($stop['arrival_time']);
$d[$key][$i] = (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time) - $adjustFactor; $d[$key][$i] = (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time) - $adjustFactor;
   
} }
} }
   
?> ?>
<div id="container" style="width:100%;height:900px;"></div> <div id="container" style="width:100%;height:900px;"></div>
<script type="text/javascript"> <script type="text/javascript">
   
/** /**
   
* Wait till dom's finished loading. * Wait till dom's finished loading.
   
*/ */
   
document.observe('dom:loaded', function(){ document.observe('dom:loaded', function(){
   
/** /**
   
* Fill series d1 and d2. * Fill series d1 and d2.
   
*/ */
<?php <?php
foreach ($d as $key => $dataseries) { foreach ($d as $key => $dataseries) {
echo "var d$key =["; echo "var d$key =[";
foreach ($dataseries as $i => $datapoint) { foreach ($dataseries as $i => $datapoint) {
echo "[$i, $datapoint],"; echo "[$i, $datapoint],";
} }
echo "];\n"; echo "];\n";
} }
   
?> ?>
   
   
var f = Flotr.draw($('container'), var f = Flotr.draw($('container'),
   
[ [
<?php <?php
foreach ($d as $key => $dataseries) { foreach ($d as $key => $dataseries) {
echo '{data:d'.$key.", label:'{$dLabel[$key]}'".', radar:{fill:false}},'."\n"; echo '{data:d'.$key.", label:'{$dLabel[$key]}'".', radar:{fill:false}},'."\n";
} }
   
?> ?>
], ],
   
{defaultType: 'radar', {defaultType: 'radar',
   
radarChartMode: true, radarChartMode: true,
   
HtmlText: false, HtmlText: false,
   
fontSize: 9, fontSize: 9,
   
xaxis:{ xaxis:{
   
ticks: [ ticks: [
<?php <?php
foreach ($dTicks as $key => $tickName) { foreach ($dTicks as $key => $tickName) {
echo '['.$key.', "'.$tickName.'"],'; echo '['.$key.', "'.$tickName.'"],';
} }
   
?> ?>
]}, ]},
   
mouse:{ // Setup point tracking mouse:{ // Setup point tracking
   
track: true, track: true,
   
lineColor: 'black', lineColor: 'black',
   
relative: true, relative: true,
   
sensibility: 70, sensibility: 70,
   
trackFormatter: function(obj){ trackFormatter: function(obj){
var d = new Date(); var d = new Date();
d.setMinutes(0); d.setMinutes(0);
d.setHours(0); d.setHours(0);
d.setTime(d.getTime() + Math.floor(obj.radarData*1000) + <?php echo $adjustFactor*1000 ?>); d.setTime(d.getTime() + Math.floor(obj.radarData*1000) + <?php echo $adjustFactor*1000 ?>);
return d.getHours() +':'+ (d.getMinutes().toString().length == 1 ? '0'+ d.getMinutes(): d.getMinutes()); return d.getHours() +':'+ (d.getMinutes().toString().length == 1 ? '0'+ d.getMinutes(): d.getMinutes());
}}}); }}});
   
}); });
   
</script> </script>
   
</div> </div>
   
   
<?php <?php
include_footer() include_footer()
?> ?>