Initial train-detail page
This commit is contained in:
68
js/train-detail.js
Normal file
68
js/train-detail.js
Normal file
@@ -0,0 +1,68 @@
|
||||
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 (!data || typeof data !== 'number') {
|
||||
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)
|
||||
}
|
||||
|
||||
async function displayOptions(data) {
|
||||
return data
|
||||
}
|
||||
|
||||
async function displayOne(object) {
|
||||
// Display a single service immediately
|
||||
const dataHead = `
|
||||
<p id='data_headcode'>${object['headcode']}</p>
|
||||
<p id='data_piscode'>${object['pis']}</p>
|
||||
`
|
||||
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 createStopTableRow(stop)
|
||||
}
|
||||
const displayBox = document.getElementById('train_data')
|
||||
displayBox.insertAdjacentHTML('beforeend', dataHead + stopRows)
|
||||
}
|
||||
|
||||
async function createStopTableRow(stop) {
|
||||
return `
|
||||
<tr>
|
||||
<td>${stop['TIPLOC']}</td>
|
||||
<td>${stop['arrivalTime']}</td>
|
||||
<td>${stop['departureTime']}</td>
|
||||
</tr>
|
||||
`
|
||||
}
|
||||
Reference in New Issue
Block a user