Better time management, times on nearby routes
Better time management, times on nearby routes

file:b/aws/awsStartup.sh (new)
  #!/bin/bash
  #this script should be run from a fresh git checkout from github
  #ami base must have yum install lighttpd-fastcgi, git, tomcat6
  #php-cli php-gd tomcat6-webapps tomcat6-admin-webapps svn maven2
  #postgres postgres-server php-pg
  #http://www.how2forge.org/installing-lighttpd-with-php5-and-mysql-support-on-fedora-12
 
  cp /root/aws.php /tmp/
  mkdir /var/www/lib/staticmaplite/cache
  chcon -h system_u:object_r:httpd_sys_content_t /var/www
  chcon -R -h root:object_r:httpd_sys_content_t /var/www/*
  chcon -R -t httpd_sys_content_rw_t /var/www/lib/staticmaplite/cache
  chmod -R 777 /var/www/lib/staticmaplite/cache
  wget http://s3-ap-southeast-1.amazonaws.com/busresources/cbrfeed.zip \
  -O /var/www/cbrfeed.zip
 
  createdb transitdata
  createlang -d transitdata plpgsql
  psql -d transitdata -f /var/www/lib/postgis.sql
  # curl https://github.com/maxious/ACTBus-ui/raw/master/transitdata.cbrfeed.sql.gz -o transitdata.cbrfeed.sql.gz
  #made with pg_dump transitdata | gzip -c > transitdata.cbrfeed.sql.gz
  gunzip /var/www/transitdata.cbrfeed.sql.gz
  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;\"
  php /var/www/updatedb.php
 
  wget http://s3-ap-southeast-1.amazonaws.com/busresources/Graph.obj \
  -O /tmp/Graph.obj
  rm -rfv /usr/share/tomcat6/webapps/opentripplanner*
  wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-webapp.war \
  -O /usr/share/tomcat6/webapps/opentripplanner-webapp.war
  wget http://s3-ap-southeast-1.amazonaws.com/busresources/opentripplanner-api-webapp.war \
  -O /usr/share/tomcat6/webapps/opentripplanner-api-webapp.war
  /etc/init.d/tomcat6 restart
 
file:b/aws/pg_hba.conf (new)
  # PostgreSQL Client Authentication Configuration File
  # ===================================================
  #
  # Refer to the "Client Authentication" section in the
  # PostgreSQL documentation for a complete description
  # of this file. A short synopsis follows.
  #
  # This file controls: which hosts are allowed to connect, how clients
  # are authenticated, which PostgreSQL user names they can use, which
  # databases they can access. Records take one of these forms:
  #
  # local DATABASE USER METHOD [OPTIONS]
  # host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
  # hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
  # hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS]
  #
  # (The uppercase items must be replaced by actual values.)
  #
  # The first field is the connection type: "local" is a Unix-domain socket,
  # "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
  # SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
  #
  # DATABASE can be "all", "sameuser", "samerole", a database name, or
  # a comma-separated list thereof.
  #
  # USER can be "all", a user name, a group name prefixed with "+", or
  # a comma-separated list thereof. In both the DATABASE and USER fields
  # you can also write a file name prefixed with "@" to include names from
  # a separate file.
  #
  # CIDR-ADDRESS specifies the set of hosts the record matches.
  # It is made up of an IP address and a CIDR mask that is an integer
  # (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
  # the number of significant bits in the mask. Alternatively, you can write
  # an IP address and netmask in separate columns to specify the set of hosts.
  #
  # METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", "krb5",
  # "ident", "pam", "ldap" or "cert". Note that "password" sends passwords
  # in clear text; "md5" is preferred since it sends encrypted passwords.
  #
  # OPTIONS are a set of options for the authentication in the format
  # NAME=VALUE. The available options depend on the different authentication
  # methods - refer to the "Client Authentication" section in the documentation
  # for a list of which options are available for which authentication methods.
  #
  # Database and user names containing spaces, commas, quotes and other special
  # characters must be quoted. Quoting one of the keywords "all", "sameuser" or
  # "samerole" makes the name lose its special character, and just match a
  # database or username with that name.
  #
  # This file is read on server startup and when the postmaster receives
  # a SIGHUP signal. If you edit the file on a running system, you have
  # to SIGHUP the postmaster for the changes to take effect. You can use
  # "pg_ctl reload" to do that.
 
  # Put your actual configuration here
  # ----------------------------------
  #
  # If you want to allow non-local connections, you need to add more
  # "host" records. In that case you will also need to make PostgreSQL listen
  # on a non-local interface via the listen_addresses configuration parameter,
  # or via the -i or -h command line switches.
  #
 
 
 
  # TYPE DATABASE USER CIDR-ADDRESS METHOD
 
  # "local" is for Unix domain socket connections only
  local all all trust
  # IPv4 local connections:
  host all all 127.0.0.1/32 trust
  # IPv6 local connections:
  host all all ::1/128 trust
 
 Binary files a/css/images/01-refresh.png and /dev/null differ
file:a/css/images/02-redo.png (deleted)
 Binary files a/css/images/02-redo.png and /dev/null differ
 Binary files a/css/images/06-magnify.png and /dev/null differ
 Binary files a/css/images/07-map-marker.png and /dev/null differ
 Binary files a/css/images/101-gameplan.png and /dev/null differ
file:a/css/images/102-walk.png (deleted)
 Binary files a/css/images/102-walk.png and /dev/null differ
file:a/css/images/103-map.png (deleted)
 Binary files a/css/images/103-map.png and /dev/null differ
 Binary files a/css/images/121-landscape.png and /dev/null differ
 Binary files a/css/images/13-target.png and /dev/null differ
 Binary files a/css/images/139-flags.png and /dev/null differ
 Binary files a/css/images/145-persondot.png and /dev/null differ
 Binary files a/css/images/184-warning.png and /dev/null differ
 Binary files a/css/images/193-location-arrow.png and /dev/null differ
file:a/css/images/28-star.png (deleted)
 Binary files a/css/images/28-star.png and /dev/null differ
file:a/css/images/53-house.png (deleted)
 Binary files a/css/images/53-house.png and /dev/null differ
 Binary files a/css/images/55-network.png and /dev/null differ
 Binary files a/css/images/57-download.png and /dev/null differ
 Binary files a/css/images/58-bookmark.png and /dev/null differ
file:a/css/images/59-flag.png (deleted)
 Binary files a/css/images/59-flag.png and /dev/null differ
 Binary files a/css/images/60-signpost.png and /dev/null differ
file:a/css/images/73-radar.png (deleted)
 Binary files a/css/images/73-radar.png and /dev/null differ
 Binary files a/css/images/74-location.png and /dev/null differ
 Binary files a/css/images/83-calendar.png and /dev/null differ
 Binary files /dev/null and b/css/images/91-beaker-2.png differ
  <?php
  if (php_uname('n') == "actbus-www") {
  $conn = pg_connect("dbname=transitdata user=transitdata password=transitdata host=db.actbus.dotcloud.com port=2242");
  } else if (isDebugServer()) {
  $conn = pg_connect("dbname=transitdata user=postgres password=snmc");
  } else {
  $conn = pg_connect("dbname=transitdata user=transitdata password=transitdata ");
  }
  if (!$conn) {
  die("A database error occurred.\n");
  }
 
  function databaseError($errMsg) {
  die($errMsg);
  }
 
  include('db/route-dao.inc.php');
  include('db/trip-dao.inc.php');
  include('db/stop-dao.inc.php');
  ?>
 
<?php <?php
// you have to open the session to be able to modify or remove it // you have to open the session to be able to modify or remove it
session_start(); session_start();
if (isset($_REQUEST['service_period'])) { if (isset($_REQUEST['service_period'])) {
$_SESSION['service_period'] = filter_var($_REQUEST['service_period'], FILTER_SANITIZE_STRING); $_SESSION['service_period'] = filter_var($_REQUEST['service_period'], FILTER_SANITIZE_STRING);
sessionUpdated(); sessionUpdated();
} }
if (isset($_REQUEST['time'])) { if (isset($_REQUEST['time'])) {
$_SESSION['time'] = filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING); $_SESSION['time'] = filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING);
sessionUpdated(); sessionUpdated();
} }
if (isset($_REQUEST['geolocate']) && $_REQUEST['geolocate'] != "Enter co-ordinates or address here") { if (isset($_REQUEST['geolocate']) && $_REQUEST['geolocate'] != "Enter co-ordinates or address here") {
$geocoded = false; $geocoded = false;
if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) { if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) {
$_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)); $_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
$_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION)); $_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
} }
else { else {
$geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL); $geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL);
if (startsWith($geolocate, "-")) { if (startsWith($geolocate, "-")) {
$locateparts = explode(",", $geolocate); $locateparts = explode(",", $geolocate);
$_SESSION['lat'] = $locateparts[0]; $_SESSION['lat'] = $locateparts[0];
$_SESSION['lon'] = $locateparts[1]; $_SESSION['lon'] = $locateparts[1];
} }
else { else {
$contents = geocode($geolocate, true); $contents = geocode($geolocate, true);
print_r($contents); print_r($contents);
if (isset($contents[0]->centroid)) { if (isset($contents[0]->centroid)) {
$geocoded = true; $geocoded = true;
$_SESSION['lat'] = $contents[0]->centroid->coordinates[0]; $_SESSION['lat'] = $contents[0]->centroid->coordinates[0];
$_SESSION['lon'] = $contents[0]->centroid->coordinates[1]; $_SESSION['lon'] = $contents[0]->centroid->coordinates[1];
} }
else { else {
$_SESSION['lat'] = ""; $_SESSION['lat'] = "";
$_SESSION['lon'] = ""; $_SESSION['lon'] = "";
} }
} }
} }
if ($_SESSION['lat'] != "" && isAnalyticsOn()) { if ($_SESSION['lat'] != "" && isAnalyticsOn()) {
trackEvent("Geolocation","Updated Location", "Geocoded - ".($geocoded ? "Yes" : "No")); trackEvent("Geolocation","Updated Location", "Geocoded - ".($geocoded ? "Yes" : "No"));
} }
sessionUpdated(); sessionUpdated();
} }
function sessionUpdated() { function sessionUpdated() {
$_SESSION['lastUpdated'] = time(); $_SESSION['lastUpdated'] = time();
} }
// timeoutSession // timeoutSession
$TIMEOUT_LIMIT = 60*5; // 5 minutes $TIMEOUT_LIMIT = 60*5; // 5 minutes
if (isset($_SESSION['lastUpdated']) && $_SESSION['lastUpdated']+$TIMEOUT_LIMIT < time()) { if (isset($_SESSION['lastUpdated']) && $_SESSION['lastUpdated']+$TIMEOUT_LIMIT < time()) {
debug ("Session timeout ".($_SESSION['lastUpdated']+$TIMEOUT_LIMIT).">".time(),"session"); debug ("Session timeout ".($_SESSION['lastUpdated']+$TIMEOUT_LIMIT).">".time(),"session");
session_destroy(); session_destroy();
session_start(); session_start();
} }
debug(print_r($_SESSION, true) , "session"); debug(print_r($_SESSION, true) , "session");
   
  function current_time() {
  return ($_SESSION['time']? $_SESSION['time'] : date("H:i:s"));
  }
?> ?>
<?php <?php
// Copyright 2009 Google Inc. All Rights Reserved. // Copyright 2009 Google Inc. All Rights Reserved.
$GA_ACCOUNT = "MO-22173039-1"; $GA_ACCOUNT = "MO-22173039-1";
$GA_PIXEL = "/lib/ga.php"; $GA_PIXEL = "/lib/ga.php";
function googleAnalyticsGetImageUrl() function googleAnalyticsGetImag