versionDisplay()
let data // Maybe this is a bad idea?
init()
async function init() {
const headcode = await getQuery('headcode')
if (headcode == 'false') {
parse([]) // Pass an empty array to parse()
}
const res = await get(headcode)
parse(res)
}
async function get(headcode) {
const apiPath = `train/headcode/today/${headcode}`
data = await getApi(apiPath, auth = true)
if (typeof data == 'number' || !data) {
log('train-detail.get: Status: ' + data, 'ERR')
return []
}
log(data, 'DBUG')
return data
}
async function parse(data) {
if (data.length === 1) {
document.getElementById('train_options').style = 'display:none;'
displayOne(data[0])
}
displayOptions(data)
document.getElementById('train_data').style = 'display:block;'
}
async function displayOptions(data) {
return data
}
async function displayOne(object) {
// Display a single service immediately
const dataTableHead = `
${object['headcode']}
PIS Code: ${object['pis']}
Location |
Arr. |
Dep. |
`
const dataTableClose = `
`
let publicStops = []
for (const stop of object['stops']) {
if (stop['isPublic']) {
publicStops.push(stop)
}
}
console.log(publicStops)
stopRows = ''
for (const stop of publicStops) {
stopRows += await createPublicStopTableRow(stop)
}
const displayBox = document.getElementById('train_data')
const titleImg = document.getElementById('titleimg')
displayBox.insertAdjacentHTML('beforeend', dataTableHead + stopRows + dataTableClose)
displayBox.style = 'display:block;'
titleImg.style = 'width:150px;height:98px;padding-bottom:0;'
}
async function createPublicStopTableRow(stop) {
let data_tiploc = stop['tiploc'], public_arr = stop['publicArrival'],
public_dep = stop['publicDeparture']
if (typeof data_tiploc === 'undefined') {
data_tiploc = ''
}
if (typeof public_arr === 'undefined') {
public_arr = '-'
}
if (typeof public_dep === 'undefined') {
public_dep = '-'
}
return `
${data_tiploc} |
${public_arr} |
${public_dep} |
`
}
async function reset() {
const titleImg = document.getElementById('titleimg')
const displayBox = document.getElementById('train_data')
titleImg.style = ''
displayBox.innerHTML = ''
}