Color timeliness graph based on route number
Color timeliness graph based on route number

--- a/include/db/servicealert-dao.inc.php
+++ b/include/db/servicealert-dao.inc.php
@@ -2,7 +2,7 @@
 function getServiceOverride($date="") {
 	global $conn;
 	$query = "Select * from calendar_dates where date = :date and exception_type = '1' LIMIT 1";
-	 debug($query,"database");
+	// debug($query,"database");
 	$query = $conn->prepare($query); // Create a prepared statement
 	$query->bindParam(":date", date("Ymd",($date != "" ? $date : time())));
 	$query->execute();
@@ -16,7 +16,7 @@
 function getCurrentAlerts() {
 		global $conn;
 	$query = "SELECT * from servicealerts_alerts";
-	debug($query, "database");
+	//debug($query, "database");
 	$query = $conn->prepare($query);
 	//if ($stop_sequence != "") $query->bindParam(":stop_sequence", $stop_sequence);
 	$query->execute();
@@ -29,10 +29,19 @@
 function getInformedAlerts($id,$filter_class,$filter_id) {
 	
 		global $conn;
-	$query = "SELECT * from servicealerts_informed where servicealert_id = :id";
-	debug($query, "database");
+	$query = "SELECT * from servicealerts_informed where servicealert_id = :servicealert_id";
+	
+	if ($filter_class != "" && $filter_id != "") {
+		$query .= " AND (informed_class = :informed_class OR informed_class = 'network') AND informed_id = :informed_id";
+	
+	}
+	//debug($query, "database");
 	$query = $conn->prepare($query);
-	$query->bindParam(":id", $id);
+	if ($filter_class != "" && $filter_id != "") {
+		$query->bindParam(":informed_class", $filter_class);
+		$query->bindParam(":informed_id", $filter_id);
+	}
+	$query->bindParam(":servicealert_id", $id);
 	$query->execute();
 	if (!$query) {
 		databaseError($conn->errorInfo());

--- a/labs/myway_timeliness.php
+++ b/labs/myway_timeliness.php
@@ -6,17 +6,17 @@
     <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../js/flot/excanvas.min.js"></script><![endif]--> 
  
     <script language="javascript" type="text/javascript" src="../js/flot/jquery.flot.js"></script> 
-  <div id="placeholder" style="width:800px;height:600px"></div> 
+  <div id="placeholder" style="width:1000px;height:600px"></div> 
 <script type="text/javascript"> 
 $(function () {
     var d = new Date();
 						d.setUTCMinutes(0);
 						d.setUTCHours(0);
     var midnight = d.getTime();
-    var d1 = [];
+
 <?php
 //$query = "select * from myway_timingdeltas order by time";
-$query = "select * from myway_timingdeltas where abs(timing_delta) < 2*(select stddev(timing_delta) from myway_timingdeltas)  order by time;";
+$query = "select * from myway_timingdeltas where abs(timing_delta) < 2*(select stddev(timing_delta) from myway_timingdeltas)  order by route_full_name;";
 $query = $conn->prepare($query);
 $query->execute();
 if (!$query) {
@@ -24,39 +24,34 @@
 	return Array();
 }
 $i = 0;
+$labels = Array();
+$lastRoute = "";
 foreach ($query->fetchAll() as $delta) {
-	echo "d1.push([ midnight+ (1000*" . midnight_seconds(strtotime($delta['time'])) . "), {$delta['timing_delta']}]); \n";
-	$i++;
+    $routeName = $delta['route_full_name'];
+    if (strstr($routeName," 3")) $routeName = "312-319";
+    else $routeName = preg_replace('/\D/', '', $routeName);
+    if ($routeName != $lastRoute) {
+        	$i++;
+                echo "    var d$i = [];";
+                $lastRoute = $routeName;
+                $labels[$i] = $routeName;
+    }
+	echo "d$i.push([ midnight+ (1000*" . midnight_seconds(strtotime($delta['time'])) . "), {$delta['timing_delta']}]); \n";
 };
 ?>
 
-    var d2 = [];
-<?php
-//$query = "select * from myway_timingdeltas order by route_full_name";
-$query = "select * from myway_timingdeltas where abs(timing_delta) < 2*(select stddev(timing_delta) from myway_timingdeltas) order by route_full_name";
-$query = $conn->prepare($query);
-$query->execute();
-if (!$query) {
-	databaseError($conn->errorInfo());
-	return Array();
-}
-$i = 0;
-foreach ($query->fetchAll() as $delta) {
-	//  echo "d2.push([$i, {$delta['timing_delta']}]); \n";
-	$i++;
-};
-?>
        var placeholder = $("#placeholder");
 
     var plot = $.plot(placeholder, [
-        {
-            data: d1,
-            points: { show: true }
-        },
-        {
-            data: d2,
-            points: { show: true }
-        },
+<?php
+foreach ($labels as $key => $label) {
+    echo "        {
+            data: d$key,
+            points: { show: true },
+            label: '$label'
+        },";
+}
+        ?>
     ],
         {
             xaxis: {
@@ -111,7 +106,7 @@
 
                     
                     showTooltip(item.pageX, item.pageY,
-                                item.series.label + " of " + x + " "+ time +" = " + y +" ( "+ y/60+" minutes )");
+                                item.series.label + " at "+ time +" = " + y +" ( "+ y/60+" minutes )");
                 }
             }
             else {

--- a/servicealerts_api.php
+++ b/servicealerts_api.php
@@ -17,7 +17,7 @@
 $return['header']['timestamp'] = time();
 $return['entities'] = Array();
 foreach(getCurrentAlerts() as $alert) {
-	$informedEntities = getInformedAlerts($alert['id'],$filter_class,$filter_id);
+	$informedEntities = getInformedAlerts($alert['id'],$_REQUEST['filter_class'],$_REQUEST['filter_id']);
 	if (sizeof($informedEntities) >0) {
 		$entity = Array();
 		$entity['id'] = $alert['id'];

file:a/stop.php -> file:b/stop.php
--- a/stop.php
+++ b/stop.php
@@ -12,6 +12,7 @@
 	// expand out to all platforms
 	
 }*/
+
 $stops = Array();
 $stopPositions = Array();
 $stopNames = Array();
@@ -60,6 +61,12 @@
 	}
 }
 include_header($stop['stop_name'], "stop");
+/*$serviceAlerts = json_decode(getPage(curPageURL() . "/servicealerts_api.php?filter_class=stop&filter_id=".$stopid) , true);
+
+foreach($serviceAlerts['entities'] as $serviceAlert) {
+    echo '<div id="servicewarning">'.$serviceAlert['alert']['description']['translation'].'</div>';
+}*/
+
 echo '<span class="content-secondary">';
 timePlaceSettings();
 echo $stopLinks;