Rename servicealerts to local terminology "Real Time Passenger Information System"
--- /dev/null
+++ b/rtpis/gtfs-realtime.php
@@ -1,1 +1,53 @@
+<?php
+/*
+ * Copyright 2010,2011 Alexander Sadleir
+
+ 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.
+ */
+include ('include/common.inc.php');
+function accept_header($header = false) {
+ // http://jrgns.net/parse_http_accept_header
+ $toret = null;
+ $header = $header ? $header : (array_key_exists('HTTP_ACCEPT', $_SERVER) ? $_SERVER['HTTP_ACCEPT']: false);
+ if ($header) {
+ $types = explode(',', $header);
+ $types = array_map('trim', $types);
+ foreach ($types as $one_type) {
+ $one_type = explode(';', $one_type);
+ $type = array_shift($one_type);
+ if ($type) {
+ list($precedence, $tokens) = self::accept_header_options($one_type);
+ list($main_type, $sub_type) = array_map('trim', explode('/', $type));
+ $toret[] = array('main_type' => $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens);
+ }
+ }
+ usort($toret, array('Parser', 'compare_media_ranges'));
+ }
+ return $toret;
+}
+$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json");
+if ($_REQUEST['json']) {
+ $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']);
+ header('Content-Type: application/json; charset=utf8');
+// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/');
+ header('Access-Control-Max-Age: 3628800');
+ header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
+ if (isset($_GET['callback'])) {
+ $json = '(' . $return . ');'; //must wrap in parens and end with semicolon
+ //print_r($_GET['callback'] . $json); //callback is prepended for json-p
+ }
+ else
+ echo $return;
+}
+?>
--- /dev/null
+++ b/rtpis/importer.py
@@ -1,1 +1,104 @@
+# info
+# http://stackoverflow.com/questions/4206882/named-entity-recognition-with-preset-list-of-names-for-python-php/4207128#4207128
+# http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html approximate dist
+# http://streamhacker.com/2008/12/29/how-to-train-a-nltk-chunker/ more training
+# http://www.postgresql.org/docs/9.1/static/pgtrgm.html
+# data sources
+# http://twitter.com/#!/ACTEmergencyInf instant site wide
+# http://twitter.com/#!/ACTPol_Traffic
+# http://esa.act.gov.au/feeds/currentincidents.xml
+
+# source: https://gist.github.com/322906/90dea659c04570757cccf0ce1e6d26c9d06f9283
+# to install python -m nltk.downloader punkt
+import nltk
+import tweepy
+import psycopg2
+import pickle
+
+from iniparse import INIConfig
+
+def insert_service_alert_sitewide(heading, message, url):
+ print "NaN"
+
+def insert_service_alert_for_street(streets, heading, message, url):
+ conn_string = "host='localhost' dbname='energymapper' user='postgres' password='snmc'"
+ # print the connection string we will use to connect
+ print "Connecting to database\n ->%s" % (conn_string)
+ try:
+ # get a connection, if a connect cannot be made an exception will be raised here
+ conn = psycopg2.connect(conn_string)
+
+ # conn.cursor will return a cursor object, you can use this cursor to perform queries
+ cursor = conn.cursor()
+
+ # execute our Query
+ cursor.execute("")
+
+ # retrieve the records from the database
+ records = cursor.fetchall()
+
+ for record in records:
+ ys.append(record[0])
+ # >>> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
+ #>>> cur.statusmessage
+ #'INSERT 0 1'
+ except:
+ # Get the most recent exception
+ exceptionType, exceptionValue, exceptionTraceback = sys.exc_info()
+ # Exit the script and print an error telling what happened.
+ sys.exit("Database connection failed!\n ->%s" % (exceptionValue))
+
+
+def extract_entity_names(t):
+ entity_names = []
+
+ if hasattr(t, 'node') and t.node:
+ if t.node == 'NE':
+ entity_names.append(' '.join([child[0] for child in t]))
+ else:
+ for child in t:
+ entity_names.extend(extract_entity_names(child))
+
+ return entity_names
+
+def extract_names(sample):
+ sentences = nltk.sent_tokenize(sample)
+ tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]
+ tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences]
+ chunked_sentences = nltk.batch_ne_chunk(tagged_sentences, binary=True)
+ # chunked/tagged may be enough to just find and match the nouns
+
+ entity_names = []
+ for tree in chunked_sentences:
+ # Print results per sentence
+ # print extract_entity_names(tree)
+
+ entity_names.extend(extract_entity_names(tree))
+
+ # Print all entity names
+ #print entity_names
+
+ # Print unique entity names
+ print set(entity_names)
+
+cfg = INIConfig(open('/tmp/aws.ini'))
+
+auth = tweepy.OAuthHandler(cfg.api_keys.twitter_consumer_key, cfg.api_keys.twitter_consumer_secret)
+auth.set_access_token(cfg.api_keys.twitter_access_token, cfg.api_keys.twitter_access_token_secret)
+
+#api = tweepy.API(auth)
+api = tweepy.API()
+# If the authentication was successful, you should
+# see the name of the account print out
+#print api.me().name
+# https://github.com/tweepy/tweepy/blob/master/tweepy/api.py
+for status in api.user_timeline(screen_name="ACTPol_Traffic",exclude_replies='true'):
+ print status.text
+ print status.created_at
+ print extract_names(status.text)
+# print api.update_status(status="test")
+
+last_tweet_ids = { "lion": "111", "kitty": "2222" }
+pickle.dump( last_tweet_ids, open( "save.p", "wb" ) )
+last_tweet_ids = pickle.load( open( "save.p", "rb" ) )
--- /dev/null
+++ b/rtpis/index.php
@@ -1,1 +1,21 @@
+<?php
+include ('../include/common.inc.php');
+include_header("Service Alerts", "index");
+echo '<ul data-role="listview" data-theme="e" data-groupingtheme="e">';
+
+ if ($_SESSION['authed'] == true) {
+ echo' <li><a href="servicealert_editor.php"><h3>servicealert_editor</h3>
+ <p>servicealert_editor</p></a></li>';
+ }
+ echo' <li><a href="servicealert_viewer.php"><h3>Service Alert Viewer</h3>
+ <p>Browse current network alerts</p></a></li>';
+
+ echo' </ul>';
+
+?> </div>
+<?php
+include_footer()
+?>
+
+
--- /dev/null
+++ b/rtpis/punkt.zip
--- /dev/null
+++ b/rtpis/servicealert_editor.php
@@ -1,1 +1,187 @@
+<?php
+/*
+ * Copyright 2010,2011 Alexander Sadleir
+ 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.
+ */
+include ('../include/common.inc.php');
+auth();
+include_header("Service Alert Editor", "serviceAlertEditor");
+/**
+ * Currently support:
+ * network inform
+ * stop remove: route patch, stop remove
+ * - stop search
+ * street inform: route inform, stop inform
+ * - street search
+ */
+if (isset($_REQUEST['saveedit'])) {
+
+ if ($_REQUEST['saveedit'] != "") {
+ updateServiceAlert($_REQUEST['saveedit'], $_REQUEST);
+ } else {
+ addServiceAlert($_REQUEST);
+ }
+ echo "Saved " . $_REQUEST['saveedit'];
+ die();
+}
+if ($_REQUEST['delete']) {
+ $deleteParts = explode(";", $_REQUEST['delete']);
+ deleteInformedAlert($deleteParts[0], $deleteParts[1], $deleteParts[2]);
+ echo "Deleted network inform for {$deleteParts[0]} ({$deleteParts[1]},{$deleteParts[2]})<br>\n";
+ die();
+}
+if ($_REQUEST['networkinform']) {
+ addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform");
+ echo "Added network inform for" . $_REQUEST['networkinform'];
+ die();
+}
+if ($_REQUEST['stopsearch']) {
+ addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove");
+ echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "<br>\n";
+
+ foreach ($service_periods as $sp) {
+ echo "Remove from $sp routes<br>\n";
+ foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) {
+ addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch");
+ echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "<br>\n";
+ }
+ }
+ die();
+}
+if ($_REQUEST['streetsearch']) {
+
+ echo "Informing stops of street<br>\n";
+ foreach (getStopsByName($_REQUEST['street']) as $stop) {
+ addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform");
+ echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."<br>\n";
+
+ foreach ($service_periods as $sp) {
+ echo "Informing $sp routes<br>\n";
+ foreach (getStopRoutes($stop['stop_id'], $sp) as $route) {
+ addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform");
+ echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "<br>\n";
+ }
+ }
+ }
+
+ die();
+}
+?>
+Active and Future Alerts:
+<table>
+ <?php
+ foreach (getFutureAlerts() as $alert) {
+ echo "<tr><td>" . date("c", $alert['start']) . "</td><td>" . date("c", $alert['end']) . "</td><td>" . substr($alert['description'], 0, 999) . '</td><td><a href="?edit=' . $alert['id'] . '">edit</a></td></tr>';
+ }
+ ?>
+</table>
+<?php
+$alert = getServiceAlert($_REQUEST['edit']);
+?>
+<form action="<?php echo basename(__FILE__);
+?>" method="get">
+
+ <div data-role="fieldcontain">
+ <label for="startdate"> Start Date</label>
+ <input type="text" name="startdate" id="startdate" value="<?php
+ if ($alert['start'])
+ echo date("c", $alert['start']);
+ else
+ echo date("c", strtotime("0:00"));
+?>" />
+ </div>
+ <div data-role="fieldcontain">
+ <label for="enddate"> End Date </label>
+ <input type="text" name="enddate" id="enddate" value="<?php
+ if ($alert['end'])
+ echo date("c", $alert['end']);
+ else
+ echo date("c", strtotime("23:59"));
+?>" />
+ </div>
+ <div data-role="fieldcontain">
+ <label for="header">Header</label>
+ <input type="text" name="header" id="header" value="<?php echo $alert['header']; ?>" />
+ </div>
+ <div data-role="fieldcontain">
+ <label for="description">Description</label>
+ <textarea name="description">
+ <?php echo $alert['description']; ?></textarea>
+ </div>
+ <div data-role="fieldcontain">
+ <label for="url">URL</label>
+ <input type="text" name="url" id="url" value="<?php echo $alert['url']; ?>" />
+ </div>
+ <div data-role="fieldcontain">
+ <label for="cause"> Cause: </label>
+ <select name="cause" id="cause">
+
+ <?php
+ foreach ($serviceAlertCause as $key => $value) {
+ echo "<option value=\"$key\"" . ($key === $alert['cause'] ? " SELECTED" : "") . '>' . $value . '</option>';
+ }
+ ?>
+ </select></div>
+ <div data-role="fieldcontain">
+ <label for="effect"> Effect: </label>
+ <select name="effect" id="effect">
+ <?php
+ foreach ($serviceAlertEffect as $key => $value) {
+ echo "<option value=\"$key\"" . ($key === $alert['effect'] ? " SELECTED" : "") . '>' . $value . '</option>';
+ }
+ ?>
+ </select></div>
+ <input type="hidden" name="saveedit" value="<?php echo $_REQUEST['edit']; ?>"/>
+ <input type="submit" value="Save"/>
+</div></form>
+
+<?php
+if ($_REQUEST['edit']) {
+ echo "Informed Entities for ID {$_REQUEST['edit']}:";
+ echo '<table>';
+ foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) {
+ echo "<tr><td>{$informed['informed_class']}</td><td>{$informed['informed_id']}</td><td>{$informed['informed_action']}" . '</td><td><a href="?delete=' . $_REQUEST['edit'] . ';' . $informed['informed_class'] . ';' . $informed['informed_id'] . '">delete</a></td></tr>';
+ }
+ echo '</table>';
+ ?>
+ <form action="<?php echo basename(__FILE__);
+ ?>" method="get">
+ <input type="hidden" name="networkinform" value="<?php echo $_REQUEST['edit'];
+ ?>"/>
+ <input type="submit" value="Add Network Inform"/>
+ </form>
+ <form action="<?php echo basename(__FILE__);
+ ?>" method="get">
+ <div data-role="fieldcontain">
+ <label for="stopid">StopID to remove</label>
+ <input type="text" name="stopid" />
+ </div>
+ <input type="hidden" name="stopsearch" value="<?php echo $_REQUEST['edit'];
+ ?>"/>
+ <input type="submit" value="Stop Search"/>
+ </form>
+ <form action="<?php echo basename(__FILE__);
+ ?>" method="get">
+ <div data-role="fieldcontain">
+ <label for="street">Street to inform</label>
+ <input type="text" name="street" />
+ </div>
+ <input type="hidden" name="streetsearch" value="<?php echo $_REQUEST['edit'];
+ ?>"/>
+ <input type="submit" value="Street Search"/>
+ </form>
+ <?php
+}
+include_footer();
+?>
--- /dev/null
+++ b/rtpis/servicealert_viewer.php
@@ -1,1 +1,53 @@
+<?php
+/*
+ * Copyright 2010,2011 Alexander Sadleir
+ 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.
+ */
+include ('../include/common.inc.php');
+include_header("Service Alert Viewer", "serviceAlertViewer");
+/**
+ * Currently support:
+ * network inform
+ * stop remove: route patch, stop remove
+ * - stop search
+ * street inform: route inform, stop inform
+ * - street search
+ */
+if (!isset($_REQUEST['view'])) {
+
+?>
+Active and Future Alerts:
+<table>
+ <?php
+ foreach (getFutureAlerts() as $alert) {
+ echo "<tr><td>{$alert['header']}</td><td>" . substr($alert['description'], 0, 999) . '</td><td><a href="?view=' . $alert['id'] . '">View</a></td></tr>';
+ }
+ ?>
+</table>
+<?php
+} else {
+$alert = getServiceAlert($_REQUEST['view']);
+echo "<h1>{$alert['header']}</h1>
+<h2> From ".date("c",$alert['start'])." to ".date("c",$alert['end'])."</h2>
+<small>{$alert['description']}</small><br>
+Source: <A href='{$alert['url']}'>{$alert['url']}</a><br>";
+ echo "Informed Entities for ID {$_REQUEST['view']}:";
+ echo '<table>';
+ foreach (getInformedAlerts($_REQUEST['view'], "", "") as $informed) {
+ echo "<tr><td>{$informed['informed_class']}</td><td>{$informed['informed_id']}</td><td>{$informed['informed_action']}" . '</td></tr>';
+ }
+ echo '</table>';
+}
+include_footer();
+?>
--- /dev/null
+++ b/rtpis/siri.php
@@ -1,1 +1,8 @@
+<?php
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+?>
+
--- a/servicealerts/gtfs-realtime.php
+++ /dev/null
@@ -1,53 +1,1 @@
-<?php
-/*
- * Copyright 2010,2011 Alexander Sadleir
-
- 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.
- */
-include ('include/common.inc.php');
-function accept_header($header = false) {
- // http://jrgns.net/parse_http_accept_header
- $toret = null;
- $header = $header ? $header : (array_key_exists('HTTP_ACCEPT', $_SERVER) ? $_SERVER['HTTP_ACCEPT']: false);
- if ($header) {
- $types = explode(',', $header);
- $types = array_map('trim', $types);
- foreach ($types as $one_type) {
- $one_type = explode(';', $one_type);
- $type = array_shift($one_type);
- if ($type) {
- list($precedence, $tokens) = self::accept_header_options($one_type);
- list($main_type, $sub_type) = array_map('trim', explode('/', $type));
- $toret[] = array('main_type' => $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens);
- }
- }
- usort($toret, array('Parser', 'compare_media_ranges'));
- }
- return $toret;
-}
-$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json");
-if ($_REQUEST['json']) {
- $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']);
- header('Content-Type: application/json; charset=utf8');
-// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/');
- header('Access-Control-Max-Age: 3628800');
- header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
- if (isset($_GET['callback'])) {
- $json = '(' . $return . ');'; //must wrap in parens and end with semicolon
- //print_r($_GET['callback'] . $json); //callback is prepended for json-p
- }
- else
- echo $return;
-}
-?>
--- a/servicealerts/importer.py
+++ /dev/null
@@ -1,104 +1,1 @@
-# info
-# http://stackoverflow.com/questions/4206882/named-entity-recognition-with-preset-list-of-names-for-python-php/4207128#4207128
-# http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html approximate dist
-# http://streamhacker.com/2008/12/29/how-to-train-a-nltk-chunker/ more training
-# http://www.postgresql.org/docs/9.1/static/pgtrgm.html
-# data sources
-# http://twitter.com/#!/ACTEmergencyInf instant site wide
-# http://twitter.com/#!/ACTPol_Traffic
-# http://esa.act.gov.au/feeds/currentincidents.xml
-
-# source: https://gist.github.com/322906/90dea659c04570757cccf0ce1e6d26c9d06f9283
-# to install python -m nltk.downloader punkt
-import nltk
-import tweepy
-import psycopg2
-import pickle
-
-from iniparse import INIConfig
-
-def insert_service_alert_sitewide(heading, message, url):
- print "NaN"
-
-def insert_service_alert_for_street(streets, heading, message, url):
- conn_string = "host='localhost' dbname='energymapper' user='postgres' password='snmc'"
- # print the connection string we will use to connect
- print "Connecting to database\n ->%s" % (conn_string)
- try:
- # get a connection, if a connect cannot be made an exception will be raised here
- conn = psycopg2.connect(conn_string)
-
- # conn.cursor will return a cursor object, you can use this cursor to perform queries
- cursor = conn.cursor()
-
- # execute our Query
- cursor.execute("")
-
- # retrieve the records from the database
- records = cursor.fetchall()
-
- for record in records:
- ys.append(record[0])
- # >>> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
- #>>> cur.statusmessage
- #'INSERT 0 1'
- except:
- # Get the most recent exception
- exceptionType, exceptionValue, exceptionTraceback = sys.exc_info()
- # Exit the script and print an error telling what happened.
- sys.exit("Database connection failed!\n ->%s" % (exceptionValue))
-
-
-def extract_entity_names(t):
- entity_names = []
-
- if hasattr(t, 'node') and t.node:
- if t.node == 'NE':
- entity_names.append(' '.join([child[0] for child in t]))
- else:
- for child in t:
- entity_names.extend(extract_entity_names(child))
-
- return entity_names
-
-def extract_names(sample):
- sentences = nltk.sent_tokenize(sample)
- tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences]
- tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences]
- chunked_sentences = nltk.batch_ne_chunk(tagged_sentences, binary=True)
- # chunked/tagged may be enough to just find and match the nouns
-
- entity_names = []
- for tree in chunked_sentences:
- # Print results per sentence
- # print extract_entity_names(tree)
-
- entity_names.extend(extract_entity_names(tree))
-
- # Print all entity names
- #print entity_names
-
- # Print unique entity names
- print set(entity_names)
-
-cfg = INIConfig(open('/tmp/aws.ini'))
-
-auth = tweepy.OAuthHandler(cfg.api_keys.twitter_consumer_key, cfg.api_keys.twitter_consumer_secret)
-auth.set_access_token(cfg.api_keys.twitter_access_token, cfg.api_keys.twitter_access_token_secret)
-
-#api = tweepy.API(auth)
-api = tweepy.API()
-# If the authentication was successful, you should
-# see the name of the account print out
-#print api.me().name
-# https://github.com/tweepy/tweepy/blob/master/tweepy/api.py
-for status in api.user_timeline(screen_name="ACTPol_Traffic",exclude_replies='true'):
- print status.text
- print status.created_at
- print extract_names(status.text)
-# print api.update_status(status="test")
-
-last_tweet_ids = { "lion": "111", "kitty": "2222" }
-pickle.dump( last_tweet_ids, open( "save.p", "wb" ) )
-last_tweet_ids = pickle.load( open( "save.p", "rb" ) )
--- a/servicealerts/index.php
+++ /dev/null
@@ -1,21 +1,1 @@
-<?php
-include ('../include/common.inc.php');
-include_header("Service Alerts", "index");
-echo '<ul data-role="listview" data-theme="e" data-groupingtheme="e">';
-
- if ($_SESSION['authed'] == true) {
- echo' <li><a href="servicealert_editor.php"><h3>servicealert_editor</h3>
- <p>servicealert_editor</p></a></li>';
- }
- echo' <li><a href="servicealert_viewer.php"><h3>Service Alert Viewer</h3>
- <p>Browse current network alerts</p></a></li>';
-
- echo' </ul>';
-
-?> </div>
-<?php
-include_footer()
-?>
-
-
--- a/servicealerts/punkt.zip
+++ /dev/null
--- a/servicealerts/servicealert_editor.php
+++ /dev/null
@@ -1,187 +1,1 @@
-<?php
-/*
- * Copyright 2010,2011 Alexander Sadleir
- 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.
- */
-include ('../include/common.inc.php');
-auth();
-include_header("Service Alert Editor", "serviceAlertEditor");
-/**
- * Currently support:
- * network inform
- * stop remove: route patch, stop remove
- * - stop search
- * street inform: route inform, stop inform
- * - street search
- */
-if (isset($_REQUEST['saveedit'])) {
-
- if ($_REQUEST['saveedit'] != "") {
- updateServiceAlert($_REQUEST['saveedit'], $_REQUEST);
- } else {
- addServiceAlert($_REQUEST);
- }
- echo "Saved " . $_REQUEST['saveedit'];
- die();
-}
-if ($_REQUEST['delete']) {
- $deleteParts = explode(";", $_REQUEST['delete']);
- deleteInformedAlert($deleteParts[0], $deleteParts[1], $deleteParts[2]);
- echo "Deleted network inform for {$deleteParts[0]} ({$deleteParts[1]},{$deleteParts[2]})<br>\n";
- die();
-}
-if ($_REQUEST['networkinform']) {
- addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform");
- echo "Added network inform for" . $_REQUEST['networkinform'];
- die();
-}
-if ($_REQUEST['stopsearch']) {
- addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove");
- echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "<br>\n";
-
- foreach ($service_periods as $sp) {
- echo "Remove from $sp routes<br>\n";
- foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) {
- addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch");
- echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "<br>\n";
- }
- }
- die();
-}
-if ($_REQUEST['streetsearch']) {
-
- echo "Informing stops of street<br>\n";
- foreach (getStopsByName($_REQUEST['street']) as $stop) {
- addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform");
- echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."<br>\n";
-
- foreach ($service_periods as $sp) {
- echo "Informing $sp routes<br>\n";
- foreach (getStopRoutes($stop['stop_id'], $sp) as $route) {
- addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform");
- echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "<br>\n";
- }
- }
- }
-
- die();
-}
-?>
-Active and Future Alerts:
-<table>
- <?php
- foreach (getFutureAlerts() as $alert) {
- echo "<tr><td>" . date("c", $alert['start']) . "</td>