// Client side javascript "use strict" import * as map from './map.js' import * as dt from './datetime.js' import {logerror, 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' import * as utils from "./chart_utilities.js"; import {tabtable} from './showcharts.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 // remove the taps (if shownig the map) const removeTabs = () => { document.querySelector('#navi').style.display = 'none' } // show thw tabs again const showTabs = () => { document.querySelector('#navi').style.display = 'block' } // main function: // show the map if calle w/o any parameter // if called with a sensor-ID, show the live chart for this sensor 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, x.type, x.container) } } logit(`tab chaned to ${event.currentTarget.id}`) }) }) 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) })()