Using and showing always local time

routes/api.js
   - console.log deleted

public/javascripts/global.js
   - made 'params' to const
   - added setNoUTC in main

public/javascripts/showcharts.js
   - added setNiUTC to set global at highcharts

package.json
   - added luxon
     "version": "3.0.4",
     "date": "2023-04-24 18:00 UTC",
This commit is contained in:
rxf
2023-05-24 19:45:12 +02:00
parent 4cea325f56
commit 3921a889a2
6 changed files with 85 additions and 48 deletions
+43 -41
View File
@@ -1,12 +1,12 @@
{
"name": "laerm-web-sensorapi",
"version": "3.0.0",
"version": "3.0.3",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "laerm-web-sensorapi",
"version": "3.0.0",
"version": "3.0.3",
"dependencies": {
"axios": "^1.3.4",
"cookie-parser": "~1.4.4",
@@ -17,7 +17,8 @@
"i18next": "^22.4.14",
"i18next-express-middleware": "^2.0.0",
"i18next-http-middleware": "^3.3.0",
"i18next-node-fs-backend": "^1.2.1",
"i18next-node-fs-backend": "^2.1.3",
"luxon": "^3.3.0",
"morgan": "~1.9.1",
"pug": "^3.0.2",
"sass": "^1.58.3"
@@ -320,18 +321,6 @@
"fsevents": "~2.3.2"
}
},
"node_modules/coffeescript": {
"version": "1.12.7",
"resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz",
"integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA==",
"bin": {
"cake": "bin/cake",
"coffee": "bin/coffee"
},
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -439,14 +428,6 @@
"node": ">= 0.10"
}
},
"node_modules/cson-parser": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-3.0.0.tgz",
"integrity": "sha512-khmLtNmwe6SSlWz5vrhay9yWd/Fwwyiel+vt+1vIcCT9AsdqNuLXuK9tYhhAw1FdSSHjLc56PW8xa565/x73XQ==",
"dependencies": {
"coffeescript": "^1.10.0"
}
},
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -504,15 +485,15 @@
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/esprima": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
"integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
},
"engines": {
"node": ">=0.10.0"
"node": ">=4"
}
},
"node_modules/etag": {
@@ -867,14 +848,13 @@
"integrity": "sha512-WX6uqxNwXccdNm/md5VJ+Q47DF2gjqLvygvgNzb2tCJWPM86FCi2LIvKco70EttlpV9IkfkCVNVF07/56EsSEw=="
},
"node_modules/i18next-node-fs-backend": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-1.2.1.tgz",
"integrity": "sha512-lMd/tWsdgDFb158FwXHff63WZpTXggO3j8YOFEko+EvzRPzoIWkvfqdU5Oogn/p4nYfOMnCeEns29ksPF6rZBQ==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.3.tgz",
"integrity": "sha512-CreMFiVl3ChlMc5ys/e0QfuLFOZyFcL40Jj6jaKD6DxZ/GCUMxPI9BpU43QMWUgC7r+PClpxg2cGXAl0CjG04g==",
"deprecated": "replaced by i18next-fs-backend",
"dependencies": {
"cson-parser": "3.0.0",
"js-yaml": "3.5.4",
"json5": "0.5.0"
"js-yaml": "3.13.1",
"json5": "2.0.0"
}
},
"node_modules/iconv-lite": {
@@ -990,23 +970,29 @@
"integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g=="
},
"node_modules/js-yaml": {
"version": "3.5.4",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.4.tgz",
"integrity": "sha512-XBGnYi4i/XkEeSclkcRmBKOR9t7SLViumIhaIqwHSkO7FU0F3xW/sqAQ1/y+AcYX2EcnwdKFY1nXWzjJHqBRoA==",
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dependencies": {
"argparse": "^1.0.2",
"esprima": "^2.6.0"
"argparse": "^1.0.7",
"esprima": "^4.0.0"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/json5": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.0.tgz",
"integrity": "sha512-WDgahySBucTVnQuzQHoVh6BKKg3TFBUExSwYOPwA4it9xtspn3erHYkdEx1AXXkHN38L7O6v6lmqLiXh/GnxhA==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.0.0.tgz",
"integrity": "sha512-0EdQvHuLm7yJ7lyG5dp7Q3X2ku++BG5ZHaJ5FTnaXpKqDrw4pMxel5Bt3oAYMthnrthFBdnZ1FcsXTPyrQlV0w==",
"dependencies": {
"minimist": "^1.2.0"
},
"bin": {
"json5": "lib/cli.js"
},
"engines": {
"node": ">=6"
}
},
"node_modules/jstransformer": {
@@ -1026,6 +1012,14 @@
"node": ">= 0.6"
}
},
"node_modules/luxon": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz",
"integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==",
"engines": {
"node": ">=12"
}
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -1077,6 +1071,14 @@
"node": ">= 0.6"
}
},
"node_modules/minimist": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/morgan": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
+4 -3
View File
@@ -1,7 +1,7 @@
{
"name": "laerm-web-sensorapi",
"version": "3.0.3",
"date": "2023-04-21 14:00 UTC",
"version": "3.0.4",
"date": "2023-04-24 18:00 UTC",
"private": true,
"scripts": {
"start": "node bin/www.js >>log/laerm_web.log 2>&1"
@@ -20,7 +20,8 @@
"i18next": "^22.4.14",
"i18next-express-middleware": "^2.0.0",
"i18next-http-middleware": "^3.3.0",
"i18next-node-fs-backend": "^1.2.1",
"i18next-node-fs-backend": "^2.1.3",
"luxon": "^3.3.0",
"morgan": "~1.9.1",
"pug": "^3.0.2",
"sass": "^1.58.3"
+25
View File
@@ -10,6 +10,31 @@ export const showDate = (sofort) => {
}
/* ToDo:
// Alle Minute die ktuelle Urzeit anzeigen und
// den Plot für Tages - und Wochendaten updaten.
// Alle 'refreshRate' plus 15sec die Grafiken neu zeichnen
// Die Funktion wird alle Sekunde aufgerufen !
//
function showUhrzeit(sofort) {
var d = moment() // akt. Zeit holen
if (sofort || (d.second() == 0)) { // Wenn Minute grade um
$('#h1uhr').html(d.format('HH:mm'));
$('#subtitle').html(d.format('YYYY-MM-DD')); // dann zeit anzeigen
}
if (((d.minute() % refreshRate) == 0) && (d.second() == 15)) { // alle ganzen refreshRate Minuten, 15sec danach
console.log(refreshRate, 'Minuten um, Grafik wird erneuert');
if ((aktsensorid != 'map') && (doUpdate == true)) { // Wenn nicht die Karte, dann
doPlot('oneday',startDay); // Tages- und
doPlot('oneweek',startDay); // Wochenplot erneuern
}
else {
fetchAktualData();
}
}
}
*/
export const formatJSDate = (d) => {
return DateTime.fromJSDate(d).toFormat('yyyy-LL-dd HH:mm:ss')
}
+4 -2
View File
@@ -3,7 +3,7 @@
import * as map from './map.js'
import * as dt from './datetime.js'
import {loadAll, showChart} from './showcharts.js'
import {loadAll, showChart, setNoUTC} from './showcharts.js'
import { DateTime } from './luxon.min.js'
import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_utilities.js";
@@ -14,7 +14,7 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
// END global constants
// global variables
let params = { // set defaults
const params = { // set defaults
center: Stuttgart,
zoom: 10,
span: 1,
@@ -125,6 +125,8 @@ import {setCurrentTab, getCurrentTab, showError, fetchfromserver} from "./chart_
// show the map if called w/o any parameter
// 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') {
+9 -1
View File
@@ -19,7 +19,7 @@ export async function showChart(params, typ, container) {
function form() {
for (let item of tabtable) {
if (item.type === typ) {
const d = DateTime.fromMillis(this.x, {zone: 'utc'})
const d = DateTime.fromMillis(this.x)
const d1 = d.plus({days: 1})
let fmt = d.toFormat(item.dformat)
if (((typ === 'daynight') && (this.series.name.startsWith('N'))) || (typ === 'lden')) {
@@ -112,3 +112,11 @@ export const loadAll = async (params, start = 2) => {
}
}
}
export const setNoUTC = () => {
Highcharts.setOptions({
global: {
useUTC: false // Don't use UTC on the charts
}
});
}
-1
View File
@@ -23,7 +23,6 @@ router.get('/:cmd', async function(req, res, next) {
// req.i18n.changeLanguage(req.query.lng)
const cmd = req.params.cmd
const lng = getLanguage()
// console.log('api.js: cmd = ' + cmd + ', language = ' + lng)
let url = APIHOST
url += (req.originalUrl + `&lng=${lng}`)
try {