diff --git a/public/javascripts/chart_utilities.js b/public/javascripts/chart_utilities.js index 4b5d4c2..7b26ee3 100644 --- a/public/javascripts/chart_utilities.js +++ b/public/javascripts/chart_utilities.js @@ -209,5 +209,7 @@ export const fetchfromserver = async (url) => { .catch(e => { showError(e) }); - return await ret.json() +// return await ret.json() + let x = await ret.json() + return x } \ No newline at end of file diff --git a/public/javascripts/datetime.js b/public/javascripts/datetime.js index aa99aa8..07a7f3b 100644 --- a/public/javascripts/datetime.js +++ b/public/javascripts/datetime.js @@ -15,10 +15,9 @@ export const showDate = (sofort, params) => { let start = 1 console.log(params.refreshRate, 'Minuten um, Grafik wird erneuert'); let ct = getCurrentTab() - if (ct === 'maptab') { - start = 0 + if (ct !== 'maptab') { + loadAll(params, start) } - loadAll(params, start) } } diff --git a/public/javascripts/global.js b/public/javascripts/global.js index 099d628..8282c74 100644 --- a/public/javascripts/global.js +++ b/public/javascripts/global.js @@ -126,7 +126,6 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_ // if called with a sensor-ID, show the live chart for this sensor async function main() { setNoUTC() // no UTC for HighCharts - console.log(Intl.DateTimeFormat().resolvedOptions().timeZone) // set correct language const currentLang = localStorage.getItem('curlang') if(currentLang === 'en') { @@ -167,8 +166,6 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_ showError('Sensor ID ' + csid + ' is not of type noise') return } - let triggerEl = document.querySelector('#livetab') - bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name params.sid = csid let ok = await showChart(params, 'live', 'dlive') setCurrentTab('livetab') diff --git a/public/javascripts/map.js b/public/javascripts/map.js index 985a7b3..97a408a 100644 --- a/public/javascripts/map.js +++ b/public/javascripts/map.js @@ -52,25 +52,27 @@ export async function showMap(params) { let lastdate = await buildMarkers(params) showLastDate(lastdate); - map.on('popupopen', function () { - document.querySelector('.speciallink').addEventListener('click', async function (x) { - console.log(`Event clicked: ${clickedSensor}`) - utils.showTabs() - document.querySelector('#odth').style.display = 'none' - document.querySelector('#nbday').style.display = 'inline' - params.sid = clickedSensor - let triggerEl = document.querySelector('#livetab') - bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name - localStorage.setItem('activeTab', 'livetab') - utils.setCurrentTab('livetab') - let ok = await showChart(params, 'live', 'dlive') - if (ok) { - await loadAll(params) - } - params.center = [clickedcoords.lat, clickedcoords.lng] - map.setView([clickedcoords.lat, clickedcoords.lng]); - }) - }) + // map.on('popupopen', function () { + // let link = document.querySelector('.speciallink') + // link.addEventListener('click', async function (ev) { + // console.log(`Event clicked: ${clickedSensor}`) + // utils.showTabs() + // document.querySelector('#odth').style.display = 'none' + // document.querySelector('#nbday').style.display = 'inline' + // params.sid = clickedSensor + // let triggerEl = document.querySelector('#livetab') + // bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name + // localStorage.setItem('activeTab', 'livetab') + // utils.setCurrentTab('livetab') + // let ok = await showChart(params, 'live', 'dlive') + // if (ok) { + // await loadAll(params) + // } + // params.center = [clickedcoords.lat, clickedcoords.lng] + // map.setView([clickedcoords.lat, clickedcoords.lng]); + // ev.preventDefault() + // }) + // }) } @@ -205,8 +207,8 @@ export async function buildMarkers(params) { lastseen: dt.formatISODate(x.lastseen), indoor: x.indoor }) - .on('click', e => onMarkerClick(e, true, sensors.popuptxt)) // define click- and - .bindPopup(popuptext); // and bint the popup text + .on('click', e => onMarkerClick(e, true, sensors.popuptxt, params)) // define click- and + .bindPopup(popuptext); // and bind the popup text markers.addLayer(marker); } map.addLayer(markers); @@ -216,40 +218,70 @@ export async function buildMarkers(params) { } } - - async function onMarkerClick(e, click, txts) { - let item = e.target.options; - clickedSensor = item.name; - clickedcoords = e.latlng - +async function bauPopupText(item, txts) { + let addr = await addAddress(item.name) let offlinetext = ` ${txts.offline} ${txts.lastseen}:${item.lastseen}` + let normaltext = ` LA_max:${item.value}` let popuptext = `
-

${txts.sensor}: ${item.name}

-
- - - ${item.value < 0 ? offlinetext : normaltext} -
${item.indoor==1 ? "indoor" : ""}
- +

${txts.sensor}: ${item.name}

+
${addr}
+
+ + + ${item.value < 0 ? offlinetext : normaltext} +
${item.indoor==1 ? "indoor" : ""}
+ +
` - let popup = e.target.getPopup(); - popup.setContent(popuptext); // set text into popup - e.target.openPopup(); // show the popup - if (click == true) { // if we clicked - e.target.closePopup(); // show the popup - } - +return popuptext } +async function onMarkerClick(e, click, txts, params) { + let item = e.target.options; + let popup = e.target.getPopup(); + let popuptext = await bauPopupText(item, txts) + popup.setContent(popuptext); // set text into popup + e.target.openPopup(); // show the popup + + + let link = document.querySelector('.speciallink') + link.addEventListener('click', async function (ev) { + console.log(`Event clicked: ${clickedSensor}`) + params.sid = item.name + let ok = await showChart(params, 'live', 'dlive') + if (ok) { + params.center = [clickedcoords.lat, clickedcoords.lng] + map.setView([clickedcoords.lat, clickedcoords.lng]); + ev.preventDefault() + await loadAll(params) + } + }) + + + +// if (click == true) { // if we clicked +// e.target.closePopup(); // show the popup +// } +} + +// add address to PopUp +async function addAddress(sid) { + let url = `/api/getaddress?sensorid=${sid}` + let erg = await fetchfromserver(url) + if (!erg.err) { + return erg.address + } else { + return "no address" + } +} /* async function getCoords(city) { let url = NOMINATIM_URL + city; diff --git a/public/javascripts/showcharts.js b/public/javascripts/showcharts.js index f6bb78a..15a63fb 100644 --- a/public/javascripts/showcharts.js +++ b/public/javascripts/showcharts.js @@ -63,6 +63,22 @@ export async function showChart(params, typ, container) { } let erg = await fetchfromserver(url) if (!erg.err) { + let tabt = "" + for (let x of tabtable) { + if(x.type === typ) { + tabt = x.id + break + } + } + utils.showTabs() + document.querySelector('#odth').style.display = 'none' + document.querySelector('#nbday').style.display = 'inline' + let triggerEl = document.querySelector(`#${tabt}`) + bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name + localStorage.setItem('activeTab', tabt) + utils.setCurrentTab(tabt) + + erg.options.xAxis.labels.formatter = xformat erg.options.tooltip.formatter = form let chart = Highcharts.chart(container, erg.options, function (chart) { diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css index 12cf669..2e69399 100644 --- a/public/stylesheets/style.css +++ b/public/stylesheets/style.css @@ -255,4 +255,9 @@ footer #author #versn { text-align: center; } +.addr { + font-weight: bold; + margin-bottom: 10px; +} + /*# sourceMappingURL=style.css.map */ diff --git a/public/stylesheets/style.css.map b/public/stylesheets/style.css.map index 3d6deb5..c4c6c5c 100644 --- a/public/stylesheets/style.css.map +++ b/public/stylesheets/style.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["style.sass"],"names":[],"mappings":"AAYA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;EACA;EAEA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE,kBA9BoB;;AAgCpB;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAEJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AACA;EACE;;;AAEN;EACE;EAEA;EACA;EACA,eA5Ec;EA6Ed;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACF;EACE;EACA;;;AAEJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AACF;EACE;EACA;;;AAEJ;EACE,kBAhGoB;;AAkGpB;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;;;AAGN;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;;;AAEF;EACE;EACA;;;AAGF;EAEE;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;IACE;;;AAEJ;EACE,kBAnNa;EAoNb;;;AAEF;EACE,OAvNa;EAwNb;;;AAGF;EACE;;;AAKF;EACE;EACA;EACA;EACA","file":"style.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["style.sass"],"names":[],"mappings":"AAYA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;EACA;EAEA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE,kBA9BoB;;AAgCpB;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAEJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AACA;EACE;;;AAEN;EACE;EAEA;EACA;EACA,eA5Ec;EA6Ed;EACA;EACA;;AAEA;EACE;EACA;EACA;;AACF;EACE;EACA;;;AAEJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AACF;EACE;EACA;;;AAEJ;EACE,kBAhGoB;;AAkGpB;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;;;AAGN;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAGF;EACE;;;AAEF;EACE;EACA;;;AAGF;EAEE;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;IACE;;;AAEJ;EACE,kBAnNa;EAoNb;;;AAEF;EACE,OAvNa;EAwNb;;;AAGF;EACE;;;AAKF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA","file":"style.css"} \ No newline at end of file diff --git a/public/stylesheets/style.sass b/public/stylesheets/style.sass index 4128ac3..5528605 100644 --- a/public/stylesheets/style.sass +++ b/public/stylesheets/style.sass @@ -239,3 +239,6 @@ footer justify-content: center text-align: center +.addr + font-weight: bold + margin-bottom: 10px \ No newline at end of file diff --git a/routes/api.js b/routes/api.js index 039eaec..413dbab 100644 --- a/routes/api.js +++ b/routes/api.js @@ -34,7 +34,7 @@ router.get('/:cmd', async function(req, res, next) { res.json(response.data) return } - if (cmd === 'getoneproperty') { + if ((cmd === 'getoneproperty') || (cmd === 'getaddress')) { res.json(response.data) return }