Compare commits
No commits in common. "7096995401acb403ccd73045ddb3c2032516ff6f" and "3148e4b8e93c5380e8221bf24fa5e0b0dc93694d" have entirely different histories.
7096995401
...
3148e4b8e9
|
@ -7,10 +7,10 @@
|
||||||
|
|
||||||
// convertTiploc(TIPLOC) : Exported: Looks up CRS, Name & STANOX for Tiploc
|
// convertTiploc(TIPLOC) : Exported: Looks up CRS, Name & STANOX for Tiploc
|
||||||
|
|
||||||
const log = require('../utils/log.utils'); // Log Helper
|
const log = require('../utils/log.utils'); // Log Helper
|
||||||
const ldb = require('ldbs-json')
|
const ldb = require('ldbs-json')
|
||||||
const util = require('../utils/ldb.utils')
|
const util = require('../utils/ldb.utils')
|
||||||
const san = require('../utils/sanitizer.utils')
|
const san = require('../utils/sanitizer.utils')
|
||||||
|
|
||||||
const ldbKey = process.env.OWL_LDB_KEY
|
const ldbKey = process.env.OWL_LDB_KEY
|
||||||
const ldbsvKey = process.env.OWL_LDB_SVKEY
|
const ldbsvKey = process.env.OWL_LDB_SVKEY
|
||||||
|
@ -22,32 +22,13 @@ async function get(body, id){
|
||||||
var crs = obj[0]['3ALPHA'];
|
var crs = obj[0]['3ALPHA'];
|
||||||
log.out(`ldbService.get: Determined CRS for lookup to be: ${crs}`);
|
log.out(`ldbService.get: Determined CRS for lookup to be: ${crs}`);
|
||||||
var data = await arrDepBoard(crs);
|
var data = await arrDepBoard(crs);
|
||||||
} catch (err) {
|
|
||||||
log.out(`ldbService.get: Error, Unable to find CRS: ${err}`)
|
|
||||||
var data = {ERROR:'NOT_FOUND',description:'The entered station was not found. Please check and try again.'};
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
if (data.GetStationBoardResult.nrccMessages) {
|
if (data.GetStationBoardResult.nrccMessages) {
|
||||||
var msg = await util.cleanMessages(data.GetStationBoardResult.nrccMessages);
|
var msg = await util.cleanMessages(data.GetStationBoardResult.nrccMessages);
|
||||||
data.GetStationBoardResult.nrccMessages.message = msg;
|
data.GetStationBoardResult.nrccMessages.message = msg;
|
||||||
}
|
}
|
||||||
if (data.GetStationBoardResult.trainServices && !Array.isArray(data.GetStationBoardResult.trainServices.service)) {
|
|
||||||
log.out(`ldbService.get: Transforming trainServices`)
|
|
||||||
var services = await util.cleanServices(data.GetStationBoardResult.trainServices.service)
|
|
||||||
data.GetStationBoardResult.trainServices.service = services;
|
|
||||||
}
|
|
||||||
if (data.GetStationBoardResult.ferryServices && !Array.isArray(data.GetStationBoardResult.ferryServices.service)) {
|
|
||||||
log.out(`ldbService.get: Transforming ferryServices`)
|
|
||||||
var services = await util.cleanServices(data.GetStationBoardResult.ferryServices.service)
|
|
||||||
data.GetStationBoardResult.ferryServices.service = services;
|
|
||||||
}
|
|
||||||
if (data.GetStationBoardResult.busServices && !Array.isArray(data.GetStationBoardResult.busServices.service)) {
|
|
||||||
log.out(`ldbService.get: Transforming busServices`)
|
|
||||||
var services = await util.cleanServices(data.GetStationBoardResult.busServices.service)
|
|
||||||
data.GetStationBoardResult.busServices.service = services;
|
|
||||||
}
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
log.out(`ldbService.get: Error transforming upstream data: ${err}`)
|
log.out(`ldbService.get: Error, Unable to find CRS: ${err}`)
|
||||||
|
var data = {ERROR:'NOT_FOUND',description:'The entered station was not found. Please check and try again.'};
|
||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,21 +23,7 @@ async function cleanMessages(input){
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Accepts an object but not an Array and returns it wrapped in an array.
|
|
||||||
async function cleanServices(input){
|
|
||||||
var out = []
|
|
||||||
if (!Array.isArray(input)) {
|
|
||||||
log.out(`ldbUtils.cleanServices: Transforming input: ${input}`)
|
|
||||||
out.push(input)
|
|
||||||
log.out(`ldbUtils.cleanServices: Returning output: ${out}`)
|
|
||||||
return out;
|
|
||||||
} else {
|
|
||||||
return input;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
checkCrs,
|
checkCrs,
|
||||||
cleanMessages,
|
cleanMessages
|
||||||
cleanServices
|
|
||||||
}
|
}
|
|
@ -35,10 +35,10 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="alerts">
|
<div id="alerts">
|
||||||
<div id="alerts_bar" onclick="inflateAlerts()">
|
<div id="alerts_bar">
|
||||||
<img id="alert_icon" src="./images/nav/alert_icon.svg" alt="">
|
<img id="alert_icon" src="./images/nav/alert_icon.svg" alt="">
|
||||||
<p id="alert_bar_note"></p>
|
<p id="alert_bar_note">There are <span id="alert_number">no</span> active alerts</p>
|
||||||
<button id="alert_expand_arrow">⋁</button>
|
<button id="alert_expand_arrow" onclick="inflateAlerts()">⋁</button>
|
||||||
<div id="alerts_msg">
|
<div id="alerts_msg">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -56,9 +56,6 @@
|
||||||
<th class="time">Exp Dep.</th>
|
<th class="time">Exp Dep.</th>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<div id="no_services" class="main-notice hidden-whille-loading">
|
|
||||||
<p>There are no scheduled train services from this station</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="ferry" class="hide-when-loading">
|
<div id="ferry" class="hide-when-loading">
|
||||||
|
@ -76,21 +73,6 @@
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="bus" class="hide-when-loading">
|
|
||||||
<p>Bus Services</p>
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th class="name">Origin</th>
|
|
||||||
<th class="name">Dest.</th>
|
|
||||||
<th class="plat"></th>
|
|
||||||
<th class="time">Sch Arr.</th>
|
|
||||||
<th class="time">Exp Arr.</th>
|
|
||||||
<th class="time">Sch Dep.</th>
|
|
||||||
<th class="time">Exp Dep.</th>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="error_notice" class="main-notice hide-when-loading">
|
<div id="error_notice" class="main-notice hide-when-loading">
|
||||||
<h1 class="error">Oops</h1>
|
<h1 class="error">Oops</h1>
|
||||||
<p class="error">There was an error with your request</p>
|
<p class="error">There was an error with your request</p>
|
||||||
|
@ -98,6 +80,9 @@
|
||||||
<p id="err_no_data" class="notices-hidden">The station has no data. It may not be in operation yet/anymore.</p>
|
<p id="err_no_data" class="notices-hidden">The station has no data. It may not be in operation yet/anymore.</p>
|
||||||
<p id="err_conn" class="notices-hidden">Connection Error, check your data connection. Retrying.</p>
|
<p id="err_conn" class="notices-hidden">Connection Error, check your data connection. Retrying.</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="no_services" class="main-notice hidden-whille-loading">
|
||||||
|
<p>There are no scheduled train services from this station</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<picture>
|
<picture>
|
||||||
|
|
|
@ -41,7 +41,7 @@ async function parseTime(string){
|
||||||
break;
|
break;
|
||||||
case "Cancelled":
|
case "Cancelled":
|
||||||
var output = "CANC";
|
var output = "CANC";
|
||||||
var change = "cancelled";
|
var change = "changed";
|
||||||
break;
|
break;
|
||||||
case "On time":
|
case "On time":
|
||||||
var output = "RT";
|
var output = "RT";
|
||||||
|
@ -82,12 +82,7 @@ async function displayAlerts(array) {
|
||||||
console.log(`Alert: ${msg}`);
|
console.log(`Alert: ${msg}`);
|
||||||
document.getElementById("alerts_msg").insertAdjacentHTML("beforeend", `<p>${msg}</p>`);
|
document.getElementById("alerts_msg").insertAdjacentHTML("beforeend", `<p>${msg}</p>`);
|
||||||
}
|
}
|
||||||
if (counter == 1) {
|
document.getElementById("alert_number").innerHTML = `${counter}`
|
||||||
document.getElementById("alert_bar_note").innerHTML = `There is ${counter} active alert`
|
|
||||||
} else if (counter > 1) {
|
|
||||||
document.getElementById("alert_bar_note").innerHTML = `There are ${counter} active alerts`
|
|
||||||
|
|
||||||
}
|
|
||||||
document.getElementById("alerts").style = "display:block"
|
document.getElementById("alerts").style = "display:block"
|
||||||
document.getElementById("alerts_bar").style = "display:block"
|
document.getElementById("alerts_bar").style = "display:block"
|
||||||
document.getElementById("output").style = "margin-top:95px" // Adjust margin of train table div.
|
document.getElementById("output").style = "margin-top:95px" // Adjust margin of train table div.
|
||||||
|
@ -96,11 +91,11 @@ async function displayAlerts(array) {
|
||||||
async function inflateAlerts() {
|
async function inflateAlerts() {
|
||||||
document.getElementById("alerts_msg").style = "display:block;";
|
document.getElementById("alerts_msg").style = "display:block;";
|
||||||
document.getElementById("alert_expand_arrow").style = "transform: rotate(180deg);";
|
document.getElementById("alert_expand_arrow").style = "transform: rotate(180deg);";
|
||||||
document.getElementById("alerts_bar").setAttribute("onclick", "deflateAlerts()")
|
document.getElementById("alert_expand_arrow").setAttribute("onclick", "deflateAlerts()")
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deflateAlerts() {
|
async function deflateAlerts() {
|
||||||
document.getElementById("alerts_msg").style = "display.none;";
|
document.getElementById("alerts_msg").style = "display.none;";
|
||||||
document.getElementById("alert_expand_arrow").style = "transform: rotate(0deg);";
|
document.getElementById("alert_expand_arrow").style = "transform: rotate(0deg);";
|
||||||
document.getElementById("alerts_bar").setAttribute("onclick", "inflateAlerts()")
|
document.getElementById("alert_expand_arrow").setAttribute("onclick", "inflateAlerts()")
|
||||||
}
|
}
|
|
@ -71,9 +71,6 @@ async function buildPage(data) {
|
||||||
if (data.GetStationBoardResult.ferryServices) {
|
if (data.GetStationBoardResult.ferryServices) {
|
||||||
displayFerry(data.GetStationBoardResult.ferryServices)
|
displayFerry(data.GetStationBoardResult.ferryServices)
|
||||||
}
|
}
|
||||||
if (data.GetStationBoardResult.busServices) {
|
|
||||||
displayBus(data.GetStationBoardResult.busServices)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function displayNoTrains() {
|
async function displayNoTrains() {
|
||||||
|
@ -100,13 +97,6 @@ async function displayFerry(ferrySvc) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function displayBus(busSvc) {
|
|
||||||
log(JSON.stringify(busSvc))
|
|
||||||
for(var i = 0; i < busSvc.service.length; i++) {
|
|
||||||
displayBusService(busSvc.service[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function displayService(svc) {
|
async function displayService(svc) {
|
||||||
var table = document.getElementById("output");
|
var table = document.getElementById("output");
|
||||||
|
|
||||||
|
@ -180,40 +170,3 @@ async function displayFerryService(svc) {
|
||||||
}
|
}
|
||||||
document.getElementById("ferry").style = "display:block"
|
document.getElementById("ferry").style = "display:block"
|
||||||
}
|
}
|
||||||
|
|
||||||
async function displayBusService(svc) {
|
|
||||||
var table = document.getElementById("bus");
|
|
||||||
log(JSON.stringify(svc))
|
|
||||||
// Determine Time Message
|
|
||||||
var sta = await parseTime(svc.sta);
|
|
||||||
var eta = await parseTime(svc.eta);
|
|
||||||
var std = await parseTime(svc.std);
|
|
||||||
var etd = await parseTime(svc.etd);
|
|
||||||
// Determine Platform Message
|
|
||||||
var plt = "";
|
|
||||||
// Define Table Row
|
|
||||||
var row = `
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td class="name name-item">${svc.origin.location.locationName}</td>
|
|
||||||
<td class="name name-item">${svc.destination.location.locationName}</td>
|
|
||||||
<td class="plat}">${plt}</td>
|
|
||||||
<td class="time">${sta.data}</td>
|
|
||||||
<td class="time ${eta.changed}">${eta.data}</td>
|
|
||||||
<td class="time">${std.data}</td>
|
|
||||||
<td class="time ${etd.changed}">${etd.data}</td>
|
|
||||||
</tr>
|
|
||||||
</table>`
|
|
||||||
// Put Table Row
|
|
||||||
table.insertAdjacentHTML("beforeend", row)
|
|
||||||
// Parse cancelReason & delayReason
|
|
||||||
if (svc.cancelReason) {
|
|
||||||
var cancelRow = `<p class="msg">${svc.cancelReason}</p>`
|
|
||||||
table.insertAdjacentHTML("beforeend", cancelRow);
|
|
||||||
}
|
|
||||||
if (svc.delayReason) {
|
|
||||||
var delayRow = `<p class="msg">${svc.delayReason}</p>`
|
|
||||||
table.insertAdjacentHTML("beforeend", delayRow);
|
|
||||||
}
|
|
||||||
document.getElementById("bus").style = "display:block"
|
|
||||||
}
|
|
|
@ -16,7 +16,7 @@
|
||||||
#no_services {
|
#no_services {
|
||||||
width: 75%;
|
width: 75%;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
margin-top: 80px;
|
margin-top: 150px;
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
}
|
}
|
||||||
|
@ -179,10 +179,7 @@ table {
|
||||||
}
|
}
|
||||||
|
|
||||||
.changed{
|
.changed{
|
||||||
animation: pulse-change 1.5s linear infinite;
|
animation: pulse 1.5s linear infinite;
|
||||||
}
|
|
||||||
.cancelled {
|
|
||||||
animation: pulse-cancel 1.5s linear infinite;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Footer: */
|
/* Footer: */
|
||||||
|
@ -200,14 +197,8 @@ table {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Animations */
|
/* Animations */
|
||||||
@keyframes pulse-change {
|
@keyframes pulse {
|
||||||
50% {
|
50% {
|
||||||
color: orange;
|
color: orange;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes pulse-cancel {
|
|
||||||
50% {
|
|
||||||
color: darkorange;
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue