Upgrade graphs to Flotr2
--- /dev/null
+++ b/.gitmodules
@@ -1,1 +1,7 @@
+[submodule "js/flotr2"]
+ path = js/flotr2
+ url = https://github.com/HumbleSoftware/Flotr2.git
+[submodule "js/FlashCanvas"]
+ path = js/FlashCanvas
+ url = https://github.com/timcameronryan/FlashCanvas
--- a/about.php
+++ b/about.php
@@ -34,7 +34,7 @@
<br />
Some icons by Joseph Wain / glyphish.com<br />
Native clients also available for iPhone(<a href="http://itunes.apple.com/au/app/cbrtimetable/id444287349?mt=8">cbrTimetable by Sandor Kolotenko</a>
- , <a href="http://itunes.apple.com/au/app/act-buses/id376634797?mt=8">ACT Buses by David Sullivan</a>)
+ , <a href="http://itunes.apple.com/au/app/act-buses/id376634797?mt=8">ACT Buses by David Sullivan</a>, <a href="http://itunes.apple.com/app/bus-trips-act/id489146525?mt=8">Bus Trips ACT by Molson Chengalath</a>)
, Android (<a href="https://market.android.com/details?id=com.action">MyBus 2.0 by Imagine Team</a>, <A href="https://market.android.com/details?id=GetMe2CanberraFree.source">GetMe2 Canberra by
Colin Thompson </a>)
and Windows Phone 7 (<a href="http://www.windowsphone.com/en-AU/apps/d840375e-429c-4aa4-a358-80eec6ea9e66">TransHub Canberra by Soul Solutions</a>) Other web clients include <a href="http://canberra.itranzit.com/option.html">iTranzit</a>.
--- a/aws/busuidb.sh
+++ b/aws/busuidb.sh
@@ -7,7 +7,8 @@
psql -d transitdata -f /var/www/transitdata.cbrfeed.sql
#createuser transitdata -SDRP
#password transitdata
-#psql -d transitdata -c "GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips TO transitdata;"
+#psql -d transitdata -c "GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips\
+#,servicealerts_alerts,servicealerts_informed TO transitdata;"
#psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_routes,myway_stops,myway_timingdeltas TO transitdata;"
#psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE myway_routes,myway_stops TO transitdata;"
##psql -d transitdata -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO transitdata;"
@@ -15,3 +16,4 @@
##SELECT '', 'public', 'shapes', 'shape_pt', ST_CoordDim(shape_pt), ST_SRID(shape_pt), GeometryType(shape_pt)
##FROM shapes LIMIT 1;
php /var/www/updatedb.php
+
--- a/geo/route.kml.php
+++ b/geo/route.kml.php
@@ -1,30 +1,105 @@
<?php
header('Content-Type: application/vnd.google-earth.kml+xml');
include ('../include/common.inc.php');
+header('Content-Disposition: attachment; filename="route.' . urlencode($routeid) . '.kml"');
+$debugOkay = Array(); // disable debugging output even on dev server
echo '<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"><Document>';
echo '
- <Style id="yellowLineGreenPoly">
+ <Style id="ylw-pushpin">
+ <IconStyle>
+ <Icon>
+ <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
+
+ </Icon>
+ </IconStyle>
+
+ </Style>
+ <Style id="blue-pushpin">
+ <IconStyle>
+ <Icon>
+ <href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href>
+
+ </Icon>
+ </IconStyle>
+
+ </Style>
+ <Style id="grn-pushpin">
+ <IconStyle>
+ <Icon>
+ <href>http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png</href>
+
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="yellowLineYellowPoly">
<LineStyle>
- <color>7f00ff00</color>
+ <color>7f00ebff</color>
<width>4</width>
</LineStyle>
<PolyStyle>
- <color>7f00ffff</color>
+ <color>7f00ebff</color>
</PolyStyle>
- </Style>';
+ </Style>
+ <Style id="blueLineBluePoly">
+ <LineStyle>
+ <color>7fff0000</color>
+ <width>4</width>
+ </LineStyle>
+ <PolyStyle>
+ <color>7fff0000</color>
+ </PolyStyle>
+ </Style>
+ ';
$route = getRoute($routeid);
- echo "\n<Placemark>\n";
- $link = curPageURL()."/../trip.php?routeid=".htmlspecialchars ($route["route_id"]);
- echo "<name>".$route['route_short_name']."</name>";
- echo '<atom:link href="'.$link.'"/>';
- echo '<description><![CDATA[ <a href="'.$link.'">'.$route['route_short_name']." ".$route['route_long_name']."</a>]]> </description>";
-echo "<styleUrl>#yellowLineGreenPoly</styleUrl>";
+echo "\n<Placemark>\n";
+$_REQUEST['time'] = "12:00";
+$trip = getRouteNextTrip($routeid, 0);
+$link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]. "&directionid=0&tripid=".$trip['trip_id']) ;
+echo "<name>" . $route['route_short_name'] . " Direction 0 </name>";
+echo '<atom:link rel="related" href="' . $link . '"/>';
+echo '<description><![CDATA[ <a href="' . $link . '">' . $route['route_short_name'] . " Direction 0</a>]]> </description>";
+echo "<styleUrl>#yellowLineYellowPoly</styleUrl>";
- $trip = getRouteNextTrip($routeid);
- echo getTripShape($trip['trip_id']);
+echo getTripShape($trip['trip_id']);
+ echo "</Placemark>\n";
+$stops = Array();
+foreach (getTripStops($trip['trip_id']) as $stop) {
+ $stop['style'] = "#ylw-pushpin";
+ $stops[$stop['stop_id']] = $stop;
+}
-echo "</Placemark>\n</Document></kml>\n";
+
+echo "\n<Placemark>\n";
+$trip = getRouteNextTrip($routeid, 1);
+$link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]. "&directionid=1&tripid=".$trip['trip_id']) ;
+echo "<name>" . $route['route_short_name'] . " Direction 1 </name>";
+echo '<atom:link rel="related" href="' . $link . '"/>';
+echo '<description><![CDATA[ <a href="' . $link . '">' . $route['route_short_name'] . " Direction 1</a>]]> </description>";
+echo "<styleUrl>#blueLineBluePoly</styleUrl>";
+
+echo getTripShape($trip['trip_id']);
+ echo "</Placemark>\n";
+foreach (getTripStops($trip['trip_id']) as $stop) {
+ if (isset($stops[$stop['stop_id']])) {
+ $stop['style'] = "#grn-pushpin";
+ } else {
+ $stop['style'] = "#blue-pushpin";
+ }
+ $stops[$stop['stop_id']] = $stop;
+}
+foreach ($stops as $stop) {
+ echo "\n<Placemark>\n";
+ $link = curPageURL() . '/../stop.php?stopid=' . htmlspecialchars($stop['stop_id']);
+ echo "<name>" . htmlspecialchars($stop['stop_name']) . "</name>";
+ echo '<atom:link rel="related" href="' . $link . '"/>';
+ echo '<description><![CDATA[ <a href="' . $link . '">' . htmlspecialchars($stop['stop_name']) . "</a>]]> </description>";
+ echo "<styleUrl>" . $stop['style'] . "</styleUrl>";
+ echo $stop['positionkml'];
+ echo "</Placemark>\n";
+}
+
+echo "</Document></kml>\n";
?>
--- a/geo/stops.kml.php
+++ b/geo/stops.kml.php
@@ -1,11 +1,13 @@
<?php
+header('Content-type: application/vnd.google-earth.kml+xml');
include ('../include/common.inc.php');
-header('Content-type: application/vnd.google-earth.kml+xml');
+header('Content-Disposition: attachment; filename="stops.kml"');
+$debugOkay = Array(); // disable debugging output even on dev server
//http://wiki.openstreetmap.org/wiki/OpenLayers_Dynamic_KML
// Creates the KML/XML Document.
$dom = new DOMDocument('1.0', 'UTF-8');
// Creates the root KML element and appends it to the root document.
-$node = $dom->createElementNS('http://earth.google.com/kml/2.1', 'kml');
+$node = $dom->createElementNS('http://www.opengis.net/kml/2.2', 'kml');
$parNode = $dom->appendChild($node);
// Creates a KML Document element and append it to the KML element.
$dnode = $dom->createElement('Document');
@@ -13,7 +15,7 @@
if ($suburb != "") $result_stops = getStopsBySuburb($suburb);
else $result_stops = getStops();
foreach ($result_stops as $stop) {
- $description = 'http://bus.lambdacomplex.org/' . 'stop.php?stopid=' . $stop['stop_id'] . " <br>";
+ $description = '<a href="'.curPageURL() . '/../stop.php?stopid=' . $stop['stop_id'] . '">View stop page</a><br>';
// Creates a Placemark and append it to the Document.
$node = $dom->createElement('Placemark');
$placeNode = $docNode->appendChild($node);
--- /dev/null
+++ b/geo/trip.kml.php
@@ -1,1 +1,70 @@
+<?php
+header('Content-Type: application/vnd.google-earth.kml+xml');
+include ('../include/common.inc.php');
+header('Content-Disposition: attachment; filename="trip.' . urlencode($tripid) . '.kml"');
+$debugOkay = Array(); // disable debugging output even on dev server
+echo '<?xml version="1.0" encoding="UTF-8"?>
+<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"><Document>';
+echo '
+ <Style id="ylw-pushpin">
+ <IconStyle>
+ <Icon>
+ <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
+
+ </Icon>
+ </IconStyle>
+
+ </Style>
+ <Style id="blue-pushpin">
+ <IconStyle>
+ <Icon>
+ <href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href>
+
+ </Icon>
+ </IconStyle>
+
+ </Style>
+ <Style id="grn-pushpin">
+ <IconStyle>
+ <Icon>
+ <href>http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png</href>
+
+ </Icon>
+ </IconStyle>
+ </Style>
+ <Style id="yellowLineGreenPoly">
+ <LineStyle>
+ <color>7f00ff00</color>
+ <width>4</width>
+ </LineStyle>
+ <PolyStyle>
+ <color>7f00ffff</color>
+ </PolyStyle>
+ </Style>';
+$trip = getTrip($tripid);
+echo "\n<Placemark>\n";
+$link = curPageURL() . "/../trip.php?tripid=" . htmlspecialchars($$tripid);
+echo "<name>" . $tripid . "</name>";
+echo '<atom:link rel="related" href="' . $link . '"/>';
+echo '<description><![CDATA[ <a href="' . $link . '">' . $tripid . "</a>]]> </description>";
+echo "<styleUrl>#yellowLineGreenPoly</styleUrl>";
+
+echo getTripShape($tripid);
+
+echo "</Placemark>\n";
+foreach (getTripStopTimes($tripid) as $stop) {
+ echo "\n<Placemark>\n";
+ $link = curPageURL() . '/../trip.php?tripid=' . htmlspecialchars($tripid);
+ echo "<name>" . $stop['arrival_time'] . " @ " . htmlspecialchars($stop['stop_name']) . "</name>";
+ echo '<atom:link rel="related" href="' . $link . '"/>';
+ echo '<description><![CDATA[ <a href="' . $link . '">' . htmlspecialchars($stop['stop_name']) . "</a>]]> </description>";
+ echo "<styleUrl>#blue-pushpin</styleUrl>";
+ echo "<Point><coordinates>" . $stop['stop_lon'] . "," . $stop['stop_lat'] . "</coordinates></Point>";
+
+ echo "</Placemark>\n";
+}
+echo "</Document></kml>\n";
+?>
+
+
--- a/include/common-auth.inc.php
+++ b/include/common-auth.inc.php
@@ -30,4 +30,4 @@
login();
}
}
-?>
+
--- a/include/common-db.inc.php
+++ b/include/common-db.inc.php
@@ -36,5 +36,4 @@
include ('db/trip-dao.inc.php');
include ('db/stop-dao.inc.php');
include ('db/servicealert-dao.inc.php');
-?>
--- a/include/common-geo.inc.php
+++ b/include/common-geo.inc.php
@@ -168,5 +168,3 @@
return $contents->features[0]->properties->name;
}
-?>
-
--- a/include/common-net.inc.php
+++ b/include/common-net.inc.php
@@ -35,7 +35,6 @@
debug(print_r($page, true), "json");
return $page;
}
-
function curPageURL() {
$isHTTPS = (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on");
$port = (isset($_SERVER["SERVER_PORT"]) && ((!$isHTTPS && $_SERVER["SERVER_PORT"] != "80") || ($isHTTPS && $_SERVER["SERVER_PORT"] != "443")));
@@ -44,5 +43,4 @@
return $url;
}
-?>
--- a/include/common-request.inc.php
+++ b/include/common-request.inc.php
@@ -72,4 +72,4 @@
if (isset($_REQUEST['geolocate'])) {
$geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL);
}
-?>
+
--- a/include/common-session.inc.php
+++ b/include/common-session.inc.php
@@ -62,10 +62,9 @@
//debug(print_r($_SESSION, true) , "session");
function current_time($time = "") {
- if ($_REQUEST['time']) return $_REQUEST['time'];
+ if (isset($_REQUEST['time'])) return $_REQUEST['time'];
else if ($time != "") date("H:i:s",$time);
else return date("H:i:s");
}
-?>
--- a/include/common-template.inc.php
+++ b/include/common-template.inc.php
@@ -54,7 +54,7 @@
<link rel="dns-prefetch" href="//code.jquery.com">
<link rel="dns-prefetch" href="//ajax.googleapis.com">
<link rel="stylesheet" href="' . $basePath . 'css/jquery-ui-1.8.12.custom.css" />';
- $jqmVersion = "1.0";
+ $jqmVersion = "1.0.1";
if (isDebugServer()) {
$jqmcss = $basePath . "css/jquery.mobile-$jqmVersion.css";
$jqjs = $basePath . "js/jquery-1.6.4.min.js";
@@ -304,5 +304,4 @@
return "";
}
}
-?>
-
+
--- a/include/common-transit.inc.php
+++ b/include/common-transit.inc.php
@@ -33,26 +33,33 @@
}
$date = ($date != "" ? $date : time());
$dow = date('w', $date);
-
- switch ($dow) {
- case 0:
- return 'sunday';
- case 6:
- return 'saturday';
- default:
- return 'weekday';
- }
-}
-
-function service_ids($service_period) {
+
+ switch ($dow) {
+ case 0:
+ return 'sunday';
+ case 6:
+ return 'saturday';
+ default:
+ return 'weekday';
+ }
+}
+
+function service_ids($service_period, $date = "") {
switch ($service_period) {
case 'sunday':
return Array("Sunday", "Sunday");
case 'saturday':
return Array("Saturday", "Saturday");
default:
- //return 'weekday';
- return Array("Weekday", "Weekday-SchoolVacation");
+ $date = ($date != "" ? $date : time());
+// school holidays
+ $ymd = date('Ymd', $date);
+ $dow = date('w', $date);
+ if (intval($ymd) < "20120203" && $dow != 0 && $dow != 6) {
+ return Array("Weekday-SchoolVacation", "Weekday-SchoolVacation");
+ } else {
+ return Array("Weekday", "Weekday");
+ }
}
}
@@ -294,5 +301,4 @@
}
}
-?>
-
+
--- a/include/common.inc.php
+++ b/include/common.inc.php
@@ -57,7 +57,7 @@
function isDebugServer() {
return php_sapi_name() == "cli" || strstr(php_uname('n'),"actbus") || isset($_SERVER['SERVER_NAME']) && ( $_SERVER['SERVER_NAME'] == "azusa" || $_SERVER['SERVER_NAME'] == "vanille"
- || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "192.168.1.8");
+ || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "192.168.1.8" || $_SERVER['SERVER_NAME'] == "192.168.178.24");
}
include_once ("common-geo.inc.php");
@@ -201,6 +201,3 @@
return implode($glue, $retVal);
}
-
-?>
-
--- a/include/db/route-dao.inc.php
+++ b/include/db/route-dao.inc.php
@@ -61,8 +61,8 @@
}
return $query->fetchAll();
}
-function getRouteDescription($routeID) {
- $trip = getRouteNextTrip($routeID);
+function getRouteDescription($routeID, $directionID) {
+ $trip = getRouteNextTrip($routeID, $directionID);
$start = getTripStartingPoint($trip['trip_id']);
$end = getTripDestination($trip['trip_id']);
return "From ".$start['stop_name']." to ".$end['stop_name'];
@@ -120,14 +120,16 @@
function getRouteNextTrip($routeID, $directionID) {
global $conn;
- $query = "select routes.route_id,direction_id,trips.trip_id,departure_time from routes join trips on trips.route_id = routes.route_id
+ $query = "select routes.route_id,direction_id,trips.trip_id,trip_headsign,departure_time from routes join trips on trips.route_id = routes.route_id
join stop_times on stop_times.trip_id = trips.trip_id where arrival_time between :currentTime and :futureTime
and routes.route_id = :routeID and trips.direction_id = :directionID order by
arrival_time limit 1";
debug($query, "database");
$query = $conn->prepare($query);
$query->bindParam(":currentTime", current_time());
- $query->bindParam(":futureTime", current_time(strtotime(current_time() ." +2h")));
+ $futureTime = current_time(strtotime(current_time() ." +2h"));
+ if (date("h",strtotime(current_time()) > 22)) $futureTime = "23:59:59";
+ $query->bindParam(":futureTime", $futureTime);
$query->bindParam(":routeID", $routeID);
$query->bindParam(":directionID", $directionID);
$query->execute();
@@ -210,23 +212,22 @@
$sidA = $service_ids[0];
$sidB = $service_ids[1];
if ($destination != "") {
- $query = "SELECT DISTINCT trips.route_id,route_short_name,route_long_name, service_id
+ /* $query = "SELECT DISTINCT trips.route_id,route_short_name,route_long_name, service_id
FROM stop_times join trips on trips.trip_id =
stop_times.trip_id join routes on trips.route_id = routes.route_id
WHERE route_long_name = :destination AND (service_id=:service_periodA OR service_id=:service_periodB)
- order by route_short_name";
+ order by route_short_name";*/
+ $query = "select route_id, direction_id, stop_name, b.trip_id, b.stop_sequence from (select route_id, direction_id, max(stop_sequence) as stop_sequence, max(a.trip_id) as trip_id from stop_times inner join (SELECT route_id, direction_id, max(trip_id) as trip_id
+ from trips group by route_id,direction_id) as a on stop_times.trip_id = a.trip_id group by route_id, direction_id) as b inner join stop_times on b.trip_id = stop_times.trip_id inner join stops on stop_times.stop_id = stops.stop_id where stop_times.stop_sequence = b.stop_sequence and stop_name = :destination order by route_id;";
} else {
- $query = "SELECT DISTINCT route_long_name
-FROM stop_times join trips on trips.trip_id =
-stop_times.trip_id join routes on trips.route_id = routes.route_id
-WHERE (service_id=:service_periodA OR service_id=:service_periodB)
- order by route_long_name";
- }
- debug($query, "database");
- $query = $conn->prepare($query);
-
- $query->bindParam(":service_periodA", $sidA);
- $query->bindParam(":service_periodB", $sidB);
+ $query = "select stop_name from (select route_id, direction_id, max(stop_sequence) as stop_sequence, max(a.trip_id) as trip_id from stop_times inner join (SELECT route_id, direction_id, max(trip_id) as trip_id
+ from trips group by route_id,direction_id) as a on stop_times.trip_id = a.trip_id group by route_id, direction_id) as b inner join stop_times on b.trip_id = stop_times.trip_id inner join stops on stop_times.stop_id = stops.stop_id where stop_times.stop_sequence = b.stop_sequence group by stop_name order by stop_name;";
+ }
+ debug($query, "database");
+ $query = $conn->prepare($query);
+
+ //$query->bindParam(":service_periodA", $sidA);
+ //$query->bindParam(":service_periodB", $sidB);
if ($destination != "")
$query->bindParam(":destination", $destination);
$query->execute();
@@ -265,15 +266,16 @@
}
function getRoutesNearby($lat, $lng, $limit = "", $distance = 500) {
- if ($service_period == "")
+ // if ($service_period == "")
$service_period = service_period();
$service_ids = service_ids($service_period);
$sidA = $service_ids[0];
$sidB = $service_ids[1];
- if ($limit != "")
+ $limitSQL = "";
+ if ($limit != "")
$limitSQL = " LIMIT :limit ";
global $conn;
- $query = "SELECT service_id,trips.route_id,route_short_name,route_long_name,min(stops.stop_id) as stop_id,
+ $query = "SELECT service_id,trips.route_id,trips.direction_id,route_short_name,route_long_name,min(stops.stop_id) as stop_id,
min(ST_Distance(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), FALSE)) as distance
FROM stop_times
join trips on trips.trip_id = stop_times.trip_id
@@ -281,7 +283,7 @@
join stops on stops.stop_id = stop_times.stop_id
WHERE (service_id=:service_periodA OR service_id=:service_periodB)
AND ST_DWithin(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), :distance, FALSE)
- group by service_id,trips.route_id,route_short_name,route_long_name
+ group by service_id,trips.route_id,trips.direction_id,route_short_name,route_long_name
order by distance $limitSQL";
debug($query, "database");
$query = $conn->prepare($query);
@@ -298,4 +300,3 @@
return $query->fetchAll();
}
-?>
--- a/include/db/servicealert-dao.inc.php
+++ b/include/db/servicealert-dao.inc.php
@@ -174,4 +174,3 @@
return null;
}
-?>
--- a/include/db/stop-dao.inc.php
+++ b/include/db/stop-dao.inc.php
@@ -46,7 +46,7 @@
}
}
$query .= " order by stop_name;";
- debug($query,"database");
+ debug($query, "database");
$query = $conn->prepare($query);
if ($firstLetter != "")
$query->bindParam(":firstLetter", $firstLetter);
@@ -167,16 +167,16 @@
if ($service_period == "") {
$service_period = service_period();
}
- $service_ids = service_ids($service_period);
+ $service_ids = service_ids($service_period);
$sidA = $service_ids[0];
$sidB = $service_ids[1];
$limitSQL = "";
if ($limit != "")
$limitSQL .= " LIMIT :limit ";
-
+
global $conn;
if ($afterTime != "") {
- $query = " SELECT stop_times.trip_id,stop_times.arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,trips.direction_id,route_short_name,route_long_name,end_times.arrival_time as end_time
+ $query = " SELECT stop_times.trip_id,stop_times.arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,trips.direction_id,trips.trip_headsign,route_short_name,route_long_name,end_times.arrival_time as end_time
FROM stop_times
join trips on trips.trip_id =
stop_times.trip_id
@@ -184,7 +184,7 @@
WHERE stop_times.arrival_time IS NOT NULL group by trip_id) as end_times
WHERE stop_times.stop_id = :stopID
AND stop_times.trip_id = end_times.trip_id
-AND (service_id=:service_periodA OR service_id=:service_periodB) ".($route_short_name != "" ? " AND route_short_name = :route_short_name ":"")."
+AND (service_id=:service_periodA OR service_id=:service_periodB) " . ($route_short_name != "" ? " AND route_short_name = :route_short_name " : "") . "
AND end_times.arrival_time > :afterTime
ORDER BY end_time $limitSQL";
} else {
@@ -194,7 +194,7 @@
stop_times.trip_id
join routes on trips.route_id = routes.route_id
WHERE stop_times.stop_id = :stopID
-AND (service_id=:service_periodA OR service_id=:service_periodB) ".($route_short_name != "" ? " AND route_short_name = :route_short_name ":"")."
+AND (service_id=:service_periodA OR service_id=:service_periodB) " . ($route_short_name != "" ? " AND route_short_name = :route_short_name " : "") . "
ORDER BY arrival_time $limitSQL";
}
debug($query, "database");
@@ -247,4 +247,3 @@
return $timedTrips;
}
-?>
--- a/include/db/trip-dao.inc.php
+++ b/include/db/trip-dao.inc.php
@@ -35,7 +35,7 @@
}
function getTripStops($tripID) {
global $conn;
- $query = "SELECT stop_id, stop_name, ST_AsKML(position) as positionkml,
+ $query = "SELECT stops.stop_id, stop_name, ST_AsKML(position) as positionkml,
stop_sequence, trips.trip_id
FROM stop_times
join trips on trips.trip_id = stop_times.trip_id
@@ -49,7 +49,7 @@
databaseError($conn->errorInfo());
return Array();
}
- return $query->fetchColumn(0);
+ return $query->fetchAll();
}
function getTripShape($tripID) {
// todo, use shapes table if shape_id specified
@@ -78,7 +78,7 @@
join trips on trips.trip_id = stop_times.trip_id
join routes on trips.route_id = routes.route_id
join stops on stops.stop_id = stop_times.stop_id
-WHERE trips.trip_id = :tripID $range ORDER BY stop_sequence";
+WHERE trips.trip_id = :tripID ORDER BY stop_sequence";
debug($query, "database");
$query = $conn->prepare($query);
$query->bindParam(":tripID", $tripID);
@@ -203,6 +203,3 @@
}
return $query->fetchAll();
}
-
-
-?>
--- /dev/null
+++ b/js/FlashCanvas
--- a/js/flot/excanvas.js
+++ /dev/null
@@ -1,1428 +1,1 @@
-// Copyright 2006 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Known Issues:
-//
-// * Patterns only support repeat.
-// * Radial gradient are not implemented. The VML version of these look very
-// different from the canvas one.
-// * Clipping paths are not implemented.
-// * Coordsize. The width and height attribute have higher priority than the
-// width and height style values which isn't correct.
-// * Painting mode isn't implemented.
-// * Canvas width/height should is using content-box by default. IE in
-// Quirks mode will draw the canvas using border-box. Either change your
-// doctype to HTML5
-// (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
-// or use Box Sizing Behavior from WebFX
-// (http://webfx.e