// 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' import * as chart_houravg from './chart_houravg.js' import * as chart_dayavg from './chart_dayavg.js' import * as chart_daynight from './chart_daynight.js' import * as chart_lden from './chart_lden.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}, ] const removeTabs = () => { document.querySelector('#navi').style.display = 'none' } const showTabs = () => { document.querySelector('#navi').style.display = 'block' } 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)}`) const csid = parseInt(sysparams.csid) if(csid !== -1) { let triggerEl = document.querySelector('#livetab') bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name params.sid = csid await chart_live.showLive(params) } // show the map removeTabs() map.showMap(params) } main().catch(console.error) })()