From 7eec40947267a8044771ac7c2da6864ecf867b2e Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sun, 14 Apr 2019 10:48:23 +0000
Subject: [PATCH] Update stop names
---
index.js | 96 ++++++++++++++++++++++++-----------------------
1 files changed, 49 insertions(+), 47 deletions(-)
diff --git a/index.js b/index.js
index e59ca07..469a6ab 100644
--- a/index.js
+++ b/index.js
@@ -17,6 +17,7 @@
var times_xhr;
var times_timer;
+var times_stop_type = document.getElementById('times-stop-type');
var times_stop_name = document.getElementById('times-stop-name');
var times_alerts = document.getElementById('times-alerts');
var times_table = document.getElementById('times-table');
@@ -54,9 +55,9 @@
function fail_ajax(data) {
// abort() is not a failure
- if(data.readyState == 0 && data.statusText == 'abort') return;
+ if(data.readyState === 0) return;
- if(data.status == 0) {
+ if(data.status === 0) {
fail(lang.error_request_failed_connectivity, data);
} else if (data.statusText) {
fail(lang.error_request_failed_status.replace('$status', data.statusText), data);
@@ -98,54 +99,62 @@
window.location.hash = '#!' + language + stopId;
refresh_button.removeAttribute('disabled');
+ var alternative_stop = null;
+ var candidate = null;
+ for(var i = 0; i < stop_name_autocomplete.options.length; i++) {
+ candidate = stop_name_autocomplete.options[i].value;
+ if(candidate.substr(0, 1) != prefix && candidate.substr(1) == stop) {
+ alternative_stop = candidate;
+ break;
+ }
+ }
+
times_xhr = $.get(
url + '/services/passageInfo/stopPassages/stop'
+ '?stop=' + encodeURIComponent(stop)
+ '&mode=departure'
).done(function(data) {
+ setText(times_stop_type, lang.types['s' + prefix]);
setText(times_stop_name, data.stopName);
setText(page_title, lang.page_title_stop_name.replace('$stop', data.stopName));
deleteChildren(times_alerts);
deleteChildren(times_table);
//deleteChildren(times_lines);
+ if(alternative_stop !== null) {
+ var a = addParaWithText(times_alerts, '');
+ a = addElementWithText(a, 'a', (prefix == 'b' ? lang.departures_for_trams : lang.departures_for_buses));
+ a.href = '';
+ a.onclick = function(e) {
+ e.preventDefault();
+ loadTimes(alternative_stop);
+ };
+
+ }
+
for(var i = 0, il = data.generalAlerts.length; i < il; i++) {
addParaWithText(times_alerts, data.generalAlerts[i].title);
}
- for(var i = 0, il = data.old.length; i < il; i++) {
+ var all_departures = data.old.concat(data.actual);
+ var tr, dir_cell, vehicle, status, status_cell, delay, delay_cell;
+ for(var i = 0, il = all_departures.length; i < il; i++) {
var tr = document.createElement('tr');
- addCellWithText(tr, data.old[i].patternText);
- var dir_cell = addCellWithText(tr, data.old[i].direction);
- var vehicle = parseVehicle(prefix + data.old[i].vehicleId);
+ addCellWithText(tr, all_departures[i].patternText);
+ var dir_cell = addCellWithText(tr, all_departures[i].direction);
+ var vehicle = parseVehicle(prefix + all_departures[i].vehicleId);
dir_cell.appendChild(displayVehicle(vehicle));
addCellWithText(tr, (vehicle ? vehicle.num : '')).className = 'vehicleData';
- var status = parseStatus(data.old[i]);
- addCellWithText(tr, status);
- addCellWithText(tr, '');
-
- tr.className = 'active';
- tr.addEventListener('click', function(tripId, vehicleInfo) {
- return function(){ loadRoute(tripId, vehicleInfo); }
- }(prefix + data.old[i].tripId, vehicle));
- times_table.appendChild(tr);
- }
-
- for(var i = 0, il = data.actual.length; i < il; i++) {
- var tr = document.createElement('tr');
- addCellWithText(tr, data.actual[i].patternText);
- var dir_cell = addCellWithText(tr, data.actual[i].direction);
- var vehicle = parseVehicle(prefix + data.actual[i].vehicleId);
- dir_cell.appendChild(displayVehicle(vehicle));
- addCellWithText(tr, (vehicle ? vehicle.num : '')).className = 'vehicleData';
- var status = parseStatus(data.actual[i]);
+ var status = parseStatus(all_departures[i]);
var status_cell = addCellWithText(tr, status);
- var delay = parseDelay(data.actual[i]);
+ var delay = parseDelay(all_departures[i]);
var delay_cell = addCellWithText(tr, delay);
- if(data.actual[i].status == 'STOPPING') {
+ if(i < data.old.length) {
+ tr.className = 'active';
+ } else if(all_departures[i].status === 'STOPPING') {
tr.className = 'success';
- if (data.actual[i].actualRelativeTime <= 0) {
+ if (all_departures[i].actualRelativeTime <= 0) {
status_cell.className = 'status-boarding';
}
} else if(parseInt(delay) > 9) {
@@ -157,7 +166,7 @@
tr.addEventListener('click', function(tripId, vehicleInfo) {
return function(){ loadRoute(tripId, vehicleInfo); }
- }(prefix + data.actual[i].tripId, vehicle));
+ }(prefix + all_departures[i].tripId, vehicle));
times_table.appendChild(tr);
}
@@ -189,14 +198,13 @@
var prefix = tripId.substr(0, 1);
var trip = tripId.substr(1);
- var url = ttss_urls[prefix];
route_id = tripId;
route_vehicle_info = vehicleInfo;
if(route_xhr) route_xhr.abort();
route_xhr = $.get(
- url + '/services/tripInfo/tripPassages'
+ ttss_urls[prefix] + '/services/tripInfo/tripPassages'
+ '?tripId=' + encodeURIComponent(trip)
+ '&mode=departure'
).done(function(data) {
@@ -218,25 +226,19 @@
deleteChildren(route_table);
- for(var i = 0, il = data.old.length; i < il; i++) {
- var tr = document.createElement('tr');
- addCellWithText(tr, data.old[i].actualTime || data.old[i].plannedTime);
- addCellWithText(tr, data.old[i].stop_seq_num + '. ' + data.old[i].stop.name);
+ var all_departures = data.old.concat(data.actual);
+ var tr;
+ for(var i = 0, il = all_departures.length; i < il; i++) {
+ tr = document.createElement('tr');
+ addCellWithText(tr, all_departures[i].actualTime || all_departures[i].plannedTime);
+ addCellWithText(tr, all_departures[i].stop_seq_num + '. ' + all_departures[i].stop.name);
- tr.className = 'active';
- tr.addEventListener('click', function(stopId){ return function(){ loadTimes(stopId); } }(prefix + data.old[i].stop.shortName) );
- route_table.appendChild(tr);
- }
-
- for(var i = 0, il = data.actual.length; i < il; i++) {
- var tr = document.createElement('tr');
- addCellWithText(tr, data.actual[i].actualTime || data.actual[i].plannedTime);
- addCellWithText(tr, data.actual[i].stop_seq_num + '. ' + data.actual[i].stop.name);
-
- if(data.actual[i].status == 'STOPPING') {
+ if(i < data.old.length) {
+ tr.className = 'active';
+ } else if(all_departures[i].status === 'STOPPING') {
tr.className = 'success';
}
- tr.addEventListener('click', function(stopId){ return function(){ loadTimes(stopId); } }(prefix + data.actual[i].stop.shortName) );
+ tr.addEventListener('click', function(stopId){ return function(){ loadTimes(stopId); } }(prefix + all_departures[i].stop.shortName) );
route_table.appendChild(tr);
}
}).fail(fail_ajax);
--
Gitblit v1.9.1