• Creato un nuovo file CSS per gli stili del chiosco (kiosk) con variabili, stili per le schede (card) e animazioni. • Aggiunto un file HTML per l'interfaccia della mappa utilizzando Mapbox, inclusi gli stili e il JavaScript per le funzionalità della mappa. • Introdotto un file JSON per i riferimenti ai sensori, definendo percorsi ed elementi per i dati di temperatura, vento, onde, posizione, batteria, motore e sistema. Co-authored-by: Copilot <copilot@github.com>
35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
const router = require('express').Router();
|
|
const express = require('express');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const configManager = require('../../config/configManager.js');
|
|
|
|
const kioskPath = path.join(__dirname, '../../tools/kiosk');
|
|
const htmlFile = path.join(kioskPath, 'kiosk.html');
|
|
|
|
router.use('/', express.static(kioskPath));
|
|
|
|
router.get('/', (req, res) => {
|
|
const apiUrl = process.env.API_URL || 'https://api.mebboat.it';
|
|
const realtimeUrl = process.env.REALTIME_URL || 'https://realtime.mebboat.it';
|
|
const realtimeWsUrl = process.env.REALTIME_SOCKET_URL || 'wss://realtime.mebboat.it';
|
|
const sensorCode = configManager.getSensorCode();
|
|
const sensorName = configManager.getSensorName();
|
|
|
|
const esc = (s) => String(s || '').replace(/"/g, '"');
|
|
const metas = `
|
|
<meta name="api-url" content="${esc(apiUrl)}">
|
|
<meta name="realtime-url" content="${esc(realtimeUrl)}">
|
|
<meta name="realtime-ws-url" content="${esc(realtimeWsUrl)}">
|
|
<meta name="sensor-code" content="${esc(sensorCode)}">
|
|
<meta name="sensor-name" content="${esc(sensorName)}">
|
|
`;
|
|
let html;
|
|
try { html = fs.readFileSync(htmlFile, 'utf8'); }
|
|
catch (e) { return res.status(500).send('kiosk.html not found'); }
|
|
html = html.replace('</head>', metas + '</head>');
|
|
res.set('Content-Type', 'text/html').send(html);
|
|
});
|
|
|
|
module.exports = router;
|