multiple changes WIP WIP NIT WORKING
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
@@ -15,10 +15,9 @@ 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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
+75
-43
@@ -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,40 +218,70 @@ 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>
|
||||||
<table>
|
<div id="infoTable">
|
||||||
<tr><td colspan="2"><span style="color:limegreen;">${item.indoor==1 ? "indoor" : ""}</span></td></tr>
|
<table>
|
||||||
${item.value < 0 ? offlinetext : normaltext}
|
<tr><td colspan="2"><span style="color:limegreen;">${item.indoor==1 ? "indoor" : ""}</span></td></tr>
|
||||||
</table>
|
${item.value < 0 ? offlinetext : normaltext}
|
||||||
<div id="infoBtn">
|
</table>
|
||||||
<a href="#" class="speciallink">${txts.showchart}</a>
|
<div id="infoBtn">
|
||||||
</div>
|
<a href="#" class="speciallink">${txts.showchart}</a>
|
||||||
</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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
{"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"}
|
||||||
@@ -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
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user