Files
noise/public/javascripts/global.js
T
2023-03-20 20:01:26 +01:00

86 lines
2.7 KiB
JavaScript

// Client side javascript
"use strict"
import * as map from './map.js'
import * as dt from './datetime.js'
import {logit} from './logit.js'
import * as chart_live from './chart_live.js'
(async () => {
// global constants
const Stuttgart = [48.779, 9.16]
const MAXROWS_IN_TABLE = 1000
const defaultStartime = '2023-01-01 00:00'
// END global constants
// global variables
let params = { // set defaults
drawlines: false,
nbrentries: 0,
device: '',
coordinates: false,
center: Stuttgart,
zoom: 10,
refresh: 0,
starttime: '2023-01-01T00:00:00Z', //date2ISO(defaultStartime),
endtime: '2023-03-01T00:00:00Z' //date2ISO(emptyTimes.emptyHMtime)
}
// END global variables
const tabtable = [
{id: 'kartentab', func: map.showMap},
{id: 'livetab', func: chart_live.showLive},
// {id: 'houravgtab', func: chart_houravg.showHouravg},
// {id: 'dayavgtab', func: chart_dayavg.showDayavg},
// {id: 'daynighttab', func: chart_daynight.showDaynight},
// {id: 'ldentab', func: chart_lden.showLden},
]
async function main() {
// initialise tabs
let triggerTabList = [].slice.call(document.querySelectorAll('.nav-link'))
triggerTabList.forEach(function (triggerEl) {
let tabTrigger = new bootstrap.Tab(triggerEl)
triggerEl.addEventListener('click', function (event) {
event.preventDefault()
tabTrigger.show()
for(let x of tabtable) {
if (x.id === event.currentTarget.id) {
x.func(params)
}
}
logit(`tab chaned to ${event.currentTarget.id}`)
})
})
// var triggerEl = document.querySelector('#tablist a[href="#profile"]')
// bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
//
// var triggerFirstTabEl = document.querySelector('#tablist li:first-child a')
// bootstrap.Tab.getInstance(triggerFirstTabEl).show() // Select first tab
// let nl = document.querySelectorAll('.nav-link')
// for (let x of nl) {
// x.addEventListener('click', (event) => {
// event.preventDefault()
// console.log(event)
// })
// }
dt.showDate(true)
// and show date/time every minute
setInterval(() => dt.showDate(false), 1000)
// show version and version-date
document.querySelector('#versn').setHTML(`Version: ${sysparams.version} vom ${sysparams.date.slice(0,10)}`)
// show the map
map.showMap(params)
}
main().catch(console.error)
})()