multiple changes WIP WIP NIT WORKING

This commit is contained in:
rxf
2023-06-01 15:55:04 +02:00
parent b485c08227
commit c32761ed46
9 changed files with 106 additions and 52 deletions
+3 -1
View File
@@ -209,5 +209,7 @@ export const fetchfromserver = async (url) => {
.catch(e => { .catch(e => {
showError(e) showError(e)
}); });
return await ret.json() // return await ret.json()
let x = await ret.json()
return x
} }
+2 -3
View File
@@ -15,11 +15,10 @@ export const showDate = (sofort, params) => {
let start = 1 let start = 1
console.log(params.refreshRate, 'Minuten um, Grafik wird erneuert'); console.log(params.refreshRate, 'Minuten um, Grafik wird erneuert');
let ct = getCurrentTab() let ct = getCurrentTab()
if (ct === 'maptab') { if (ct !== 'maptab') {
start = 0
}
loadAll(params, start) loadAll(params, start)
} }
}
} }
/* ToDo: /* ToDo:
-3
View File
@@ -126,7 +126,6 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
// if called with a sensor-ID, show the live chart for this sensor // if called with a sensor-ID, show the live chart for this sensor
async function main() { async function main() {
setNoUTC() // no UTC for HighCharts setNoUTC() // no UTC for HighCharts
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)
// set correct language // set correct language
const currentLang = localStorage.getItem('curlang') const currentLang = localStorage.getItem('curlang')
if(currentLang === 'en') { if(currentLang === 'en') {
@@ -167,8 +166,6 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
showError('Sensor ID ' + csid + ' is not of type noise') showError('Sensor ID ' + csid + ' is not of type noise')
return return
} }
let triggerEl = document.querySelector('#livetab')
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
params.sid = csid params.sid = csid
let ok = await showChart(params, 'live', 'dlive') let ok = await showChart(params, 'live', 'dlive')
setCurrentTab('livetab') setCurrentTab('livetab')
+69 -37
View File
@@ -52,25 +52,27 @@ export async function showMap(params) {
let lastdate = await buildMarkers(params) let lastdate = await buildMarkers(params)
showLastDate(lastdate); showLastDate(lastdate);
map.on('popupopen', function () { // map.on('popupopen', function () {
document.querySelector('.speciallink').addEventListener('click', async function (x) { // let link = document.querySelector('.speciallink')
console.log(`Event clicked: ${clickedSensor}`) // link.addEventListener('click', async function (ev) {
utils.showTabs() // console.log(`Event clicked: ${clickedSensor}`)
document.querySelector('#odth').style.display = 'none' // utils.showTabs()
document.querySelector('#nbday').style.display = 'inline' // document.querySelector('#odth').style.display = 'none'
params.sid = clickedSensor // document.querySelector('#nbday').style.display = 'inline'
let triggerEl = document.querySelector('#livetab') // params.sid = clickedSensor
bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name // let triggerEl = document.querySelector('#livetab')
localStorage.setItem('activeTab', 'livetab') // bootstrap.Tab.getInstance(triggerEl).show() // Select tab by name
utils.setCurrentTab('livetab') // localStorage.setItem('activeTab', 'livetab')
let ok = await showChart(params, 'live', 'dlive') // utils.setCurrentTab('livetab')
if (ok) { // let ok = await showChart(params, 'live', 'dlive')
await loadAll(params) // if (ok) {
} // await loadAll(params)
params.center = [clickedcoords.lat, clickedcoords.lng] // }
map.setView([clickedcoords.lat, clickedcoords.lng]); // 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), lastseen: dt.formatISODate(x.lastseen),
indoor: x.indoor indoor: x.indoor
}) })
.on('click', e => onMarkerClick(e, true, sensors.popuptxt)) // define click- and .on('click', e => onMarkerClick(e, true, sensors.popuptxt, params)) // define click- and
.bindPopup(popuptext); // and bint the popup text .bindPopup(popuptext); // and bind the popup text
markers.addLayer(marker); markers.addLayer(marker);
} }
map.addLayer(markers); map.addLayer(markers);
@@ -216,22 +218,20 @@ export async function buildMarkers(params) {
} }
} }
async function bauPopupText(item, txts) {
async function onMarkerClick(e, click, txts) { let addr = await addAddress(item.name)
let item = e.target.options;
clickedSensor = item.name;
clickedcoords = e.latlng
let offlinetext = ` let offlinetext = `
<tr><td colspan="2"><span style="color:red;">${txts.offline}</span></td></tr> <tr><td colspan="2"><span style="color:red;">${txts.offline}</span></td></tr>
<tr><td>${txts.lastseen}:</td><td>${item.lastseen}</td></tr>` <tr><td>${txts.lastseen}:</td><td>${item.lastseen}</td></tr>`
let normaltext = ` let normaltext = `
<tr></tr><tr><td>LA_max:</td><td>${item.value}</td></tr>` <tr></tr><tr><td>LA_max:</td><td>${item.value}</td></tr>`
let popuptext = ` let popuptext = `
<div id="infoTitle"> <div id="infoTitle">
<h4>${txts.sensor}: ${item.name}</h4> <h4>${txts.sensor}: ${item.name}</h4>
<div id="infoTable"> <div class="addr">${addr}</div>
<div id="infoTable">
<table> <table>
<tr><td colspan="2"><span style="color:limegreen;">${item.indoor==1 ? "indoor" : ""}</span></td></tr> <tr><td colspan="2"><span style="color:limegreen;">${item.indoor==1 ? "indoor" : ""}</span></td></tr>
${item.value < 0 ? offlinetext : normaltext} ${item.value < 0 ? offlinetext : normaltext}
@@ -239,17 +239,49 @@ export async function buildMarkers(params) {
<div id="infoBtn"> <div id="infoBtn">
<a href="#" class="speciallink">${txts.showchart}</a> <a href="#" class="speciallink">${txts.showchart}</a>
</div> </div>
</div> </div>
</div>` </div>`
let popup = e.target.getPopup(); return popuptext
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
}
} }
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) { async function getCoords(city) {
let url = NOMINATIM_URL + city; let url = NOMINATIM_URL + city;
+16
View File
@@ -63,6 +63,22 @@ export async function showChart(params, typ, container) {
} }
let erg = await fetchfromserver(url) let erg = await fetchfromserver(url)
if (!erg.err) { 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.xAxis.labels.formatter = xformat
erg.options.tooltip.formatter = form erg.options.tooltip.formatter = form
let chart = Highcharts.chart(container, erg.options, function (chart) { let chart = Highcharts.chart(container, erg.options, function (chart) {
+5
View File
@@ -255,4 +255,9 @@ footer #author #versn {
text-align: center; text-align: center;
} }
.addr {
font-weight: bold;
margin-bottom: 10px;
}
/*# sourceMappingURL=style.css.map */ /*# sourceMappingURL=style.css.map */
+1 -1
View File
@@ -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"} {"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"}
+3
View File
@@ -239,3 +239,6 @@ footer
justify-content: center justify-content: center
text-align: center text-align: center
.addr
font-weight: bold
margin-bottom: 10px
+1 -1
View File
@@ -34,7 +34,7 @@ router.get('/:cmd', async function(req, res, next) {
res.json(response.data) res.json(response.data)
return return
} }
if (cmd === 'getoneproperty') { if ((cmd === 'getoneproperty') || (cmd === 'getaddress')) {
res.json(response.data) res.json(response.data)
return return
} }