Settings split according to chart
routes/api.js - check type of sensor - translate error message app.js - debug = false at i18n public/javascripts/chart_utilities.js - setter/getter for current Tab public/javascripts/global.js - settings dialog completely rearranged - if only sensorid is given, check type routes/index.js - set language to global variable views/index.pug - reaggange settings dialog - translate 'Error' views/layout.pug - load new datepicker (vanillajs-datepicker) public/javascripts/map.js - fetching from server refactored to function - reenable tabs after leaving map charts/preparecharts - typo public/javascripts/showcharts.js - loadAll extended to load also live and map public/stylesheets/style.sass - a few changes for settinds dialog locales/[de|en] - added a few words charts/utilities.js - setter and getter for language
This commit is contained in:
+17
-19
@@ -3,6 +3,7 @@
|
||||
import * as dt from './datetime.js'
|
||||
import * as utils from "./chart_utilities.js"
|
||||
import { showChart, loadAll } from './showcharts.js'
|
||||
import {fetchfromserver} from "./chart_utilities.js";
|
||||
|
||||
let map = null
|
||||
let bounds
|
||||
@@ -14,7 +15,7 @@ const colorscale = ['#d53e4f', '#fc8d59', '#fee08b', '#e6f598', '#99d594', '#328
|
||||
const dba = [100, 80, 60, 40, 20, 0, -999];
|
||||
const APIURL = '/api/getmapdata?'
|
||||
|
||||
export async function showMap(params, sysparams) {
|
||||
export async function showMap(params) {
|
||||
utils.removeTabs()
|
||||
if(map && map.remove) {
|
||||
map.off();
|
||||
@@ -29,7 +30,7 @@ export async function showMap(params, sysparams) {
|
||||
|
||||
map.on('moveend', async function () {
|
||||
bounds = map.getBounds()
|
||||
await buildMarkers(bounds)
|
||||
await buildMarkers(params)
|
||||
});
|
||||
|
||||
let legend = L.control({position: 'bottomright'})
|
||||
@@ -48,17 +49,20 @@ export async function showMap(params, sysparams) {
|
||||
};
|
||||
legend.addTo(map)
|
||||
|
||||
let lastdate = await buildMarkers()
|
||||
let lastdate = await buildMarkers(params)
|
||||
showLastDate(lastdate);
|
||||
|
||||
map.on('popupopen', function () {
|
||||
document.querySelector('.speciallink').addEventListener('click', async function (x) {
|
||||
console.log(`Event clicked: ${clickedSensor}`)
|
||||
document.querySelector('#navi').style.display = 'block'
|
||||
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)
|
||||
@@ -160,19 +164,14 @@ function buildIcon(color, n, indoor) {
|
||||
}
|
||||
|
||||
|
||||
export async function buildMarkers() {
|
||||
export async function buildMarkers(params) {
|
||||
// debug_log('buildMarkers(bounds)');
|
||||
const box = {
|
||||
west: bounds.getWest(), south: bounds.getSouth(),
|
||||
east: bounds.getEast(), north: bounds.getNorth()
|
||||
}
|
||||
const url = APIURL + `type=noise&box=${bounds.toBBoxString()}`
|
||||
|
||||
let ret = await fetch(url)
|
||||
.catch(e => {
|
||||
console.log(e)
|
||||
});
|
||||
let sensors = await ret.json()
|
||||
let sensors = await fetchfromserver(url)
|
||||
if (!sensors.err) {
|
||||
let markers = L.markerClusterGroup({
|
||||
spiderfyOnMaxZoom: true,
|
||||
@@ -190,9 +189,11 @@ export async function buildMarkers() {
|
||||
});
|
||||
|
||||
for (let x of sensors.values) {
|
||||
if (x.value <= -4) {
|
||||
if ((params.weeks > 0) && (x.weeks > params.weeks))
|
||||
continue
|
||||
}
|
||||
// if (x.value <= -4) {
|
||||
// continue
|
||||
// }
|
||||
let marker = L.marker([x.location[1], x.location[0]], {
|
||||
icon: new L.Icon({
|
||||
iconUrl: buildIcon(getColor(parseInt(x.value)), 0, x.indoor),
|
||||
@@ -249,6 +250,7 @@ export async function buildMarkers() {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
async function getCoords(city) {
|
||||
let url = NOMINATIM_URL + city;
|
||||
const response = await axios.get(encodeURI(url));
|
||||
@@ -262,16 +264,12 @@ async function setCenter(adr) {
|
||||
map.setView([parseFloat(data.lat), parseFloat(data.lon)]);
|
||||
console.log(data);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
// Show the last date below tha map grafics
|
||||
async function showLastDate(ld) {
|
||||
const url = APIURL + 'type=noise'
|
||||
let ret = await fetch(url)
|
||||
.catch(e => {
|
||||
console.log(e)
|
||||
});
|
||||
let sensors = await ret.json()
|
||||
let sensors = await fetchfromserver(url)
|
||||
document.querySelector('#mapdate').innerText = `${sensors.valfromtxt} ${dt.formatISODate(ld).slice(0,-3)}`
|
||||
document.querySelector('#actsensors').innerText = `${sensors.actsensors} ${sensors.registered}`
|
||||
// $('#actsensors').html(`${erg.count} aktive Sensoren (angemeldet ${allsens})`)
|
||||
|
||||
Reference in New Issue
Block a user