update Mo 4. Mai 16:31:01 CEST 2020
This commit is contained in:
parent
15eabd37e9
commit
8f62a88b94
@ -489,14 +489,14 @@ setInterval(set_clock, 1000);
|
|||||||
|
|
||||||
// Uhrzeit verschieben
|
// Uhrzeit verschieben
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
|
// Position neu setzen
|
||||||
var newq = makeNewPosition();
|
var newq = makeNewPosition();
|
||||||
$('.clock_y').css('top', newq[0]);
|
$('.clock_y').css('top', newq[0]);
|
||||||
$('.clock_y').css('left', newq[1]);
|
$('.clock_y').css('left', newq[1]);
|
||||||
|
// langsam verschieben
|
||||||
animateDiv();
|
animateDiv();
|
||||||
}, 1000);
|
}, 500);
|
||||||
});
|
});
|
||||||
|
|
||||||
// neue Random-Position fuer Uhrzeit ermitteln
|
// neue Random-Position fuer Uhrzeit ermitteln
|
||||||
|
|||||||
@ -25,6 +25,8 @@ app_cfg.public = {
|
|||||||
version: 'Version 1.2',
|
version: 'Version 1.2',
|
||||||
map_tile: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
map_tile: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
|
||||||
map_attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
map_attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
|
||||||
|
// TODO: Link Impressium
|
||||||
|
// TODO: Link Datenschutzerklärung
|
||||||
};
|
};
|
||||||
|
|
||||||
app_cfg.remote = {
|
app_cfg.remote = {
|
||||||
|
|||||||
@ -101,5 +101,10 @@ nsp_dbrd.on('connection', function (socket) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Socket.IO API
|
||||||
|
|
||||||
|
// TODO: Schnittstelle zu weiterem Wachalarm-Web-Server um Einsätze und Rückmeldungen untereinander auszutauschen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -1,6 +1,7 @@
|
|||||||
module.exports = function (fs, bcrypt, app_cfg) {
|
module.exports = function (fs, bcrypt, app_cfg) {
|
||||||
|
|
||||||
// TODO: gegen better-sqlite3 ersetzen
|
// TODO: gegen better-sqlite3 ersetzen
|
||||||
|
// BUG: Zeit von UTC auf lokale Zeit anpassen
|
||||||
|
|
||||||
// Datenbank einrichten
|
// Datenbank einrichten
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
|||||||
@ -2,10 +2,12 @@ module.exports = function (io, sql, tw, async, app_cfg) {
|
|||||||
|
|
||||||
// Einsatzmeldung in Datenbank speichern
|
// Einsatzmeldung in Datenbank speichern
|
||||||
function einsatz_speichern(einsatz_rohdaten) {
|
function einsatz_speichern(einsatz_rohdaten) {
|
||||||
|
// TODO: Einsatzdaten auf Validität prüfen
|
||||||
// Einsatzmeldung (JSON) speichern
|
// Einsatzmeldung (JSON) speichern
|
||||||
sql.db_einsatz_speichern(einsatz_rohdaten, function (waip_id) {
|
sql.db_einsatz_speichern(einsatz_rohdaten, function (waip_id) {
|
||||||
sql.db_log('WAIP', 'DEBUG: Neuer Einsatz mit der ID ' + waip_id);
|
sql.db_log('WAIP', 'DEBUG: Neuer Einsatz mit der ID ' + waip_id);
|
||||||
// nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln
|
// nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln
|
||||||
|
// FIXME: Einsatz nur verteilen, falls dieser nicht bereits so angezeigt wurde (Doppelalarmierung vermeiden)
|
||||||
sql.db_get_einsatz_rooms(waip_id, function (socket_rooms) {
|
sql.db_get_einsatz_rooms(waip_id, function (socket_rooms) {
|
||||||
if (socket_rooms) {
|
if (socket_rooms) {
|
||||||
socket_rooms.forEach(function (rooms) {
|
socket_rooms.forEach(function (rooms) {
|
||||||
@ -303,13 +305,13 @@ module.exports = function (io, sql, tw, async, app_cfg) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
// TODO: an Dashboard senden, das der Einsatz gelöscht wurde
|
// TODO: an Dashboard senden, das der Einsatz gelöscht wurde
|
||||||
// TODO: Rueckmeldung löschen, und vorher backup
|
// FIXME: Rueckmeldung löschen, und vorher backup
|
||||||
// Einsatz löschen
|
// Einsatz löschen
|
||||||
sql.db_log('WAIP', 'Einsatz ' + waip_id + ' wird gelöscht');
|
sql.db_log('WAIP', 'Einsatz ' + waip_id + ' wird gelöscht');
|
||||||
sql.db_einsatz_loeschen(waip_id);
|
sql.db_einsatz_loeschen(waip_id);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
// TODO: löschen alter Sounddaten nach alter (15min) und socket-id (nicht mehr verbunden)
|
// löschen alter Sounddaten nach alter (15min) und socket-id (nicht mehr verbunden)
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
fs.readdirSync(process.cwd() + app_cfg.global.soundpath).forEach(file => {
|
fs.readdirSync(process.cwd() + app_cfg.global.soundpath).forEach(file => {
|
||||||
// nur die mp3s von alten clients loeschen
|
// nur die mp3s von alten clients loeschen
|
||||||
|
|||||||
@ -5,6 +5,10 @@ append head
|
|||||||
script(src='/js/datatables.min.js')
|
script(src='/js/datatables.min.js')
|
||||||
script(src='/js/dataTables.bootstrap4.min.js')
|
script(src='/js/dataTables.bootstrap4.min.js')
|
||||||
|
|
||||||
|
// TODO: Seite mit aktiven Clients anpassen:
|
||||||
|
- nicht zwingend als Tabelle, sondern eher als .col mit Buttons um Aktionen an Clients zu senden
|
||||||
|
- einzelnen Client über Verwaltungsoberfläche neu laden lassen
|
||||||
|
|
||||||
block content
|
block content
|
||||||
main(role='main')
|
main(role='main')
|
||||||
.container
|
.container
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
|
// BUG: Darstellung in Safari-Mobil fehlerhaft (generell Mobil, ggf. extra Darstellung)
|
||||||
#waiptableau.fullheight.row.no-gutters
|
#waiptableau.fullheight.row.no-gutters
|
||||||
|
// BUG: Buttons für Sounds werden fehlerhaft dargestellt
|
||||||
.col-6.h-5.d-flex.align-items-center.py-1.text-muted.tf_singleline
|
.col-6.h-5.d-flex.align-items-center.py-1.text-muted.tf_singleline
|
||||||
button#replay.btn.btn-outline-light.h-100.py-1
|
button#replay.btn.btn-outline-light.h-100.py-1
|
||||||
.ion-md-play-circle
|
.ion-md-play-circle
|
||||||
|
|||||||
@ -1,5 +1,12 @@
|
|||||||
extends layout
|
extends layout
|
||||||
|
|
||||||
|
// TODO: - Login verbessern:
|
||||||
|
- Login-Seite benötigt Fehlerrückmeldung (wie Nutzerverwaltung): falsches Kennwort, Nutzer nicht vorhanden etc.
|
||||||
|
- Login/Logout protokollieren
|
||||||
|
- fehlerhafte/doppelte Logins protokollieren
|
||||||
|
- prüfen ob es sinnvoll ist, bereits eingeloggte User nicht mehr zulassen (Session prüfen)
|
||||||
|
- bei fehlendem Login zur Login-Seite weiterleiten und nach dem Login die zuvor besuchte Seite anzeigen
|
||||||
|
|
||||||
block content
|
block content
|
||||||
main(role='main')
|
main(role='main')
|
||||||
.container
|
.container
|
||||||
|
|||||||
@ -38,6 +38,7 @@ block content
|
|||||||
script(src='/js/leaflet.js')
|
script(src='/js/leaflet.js')
|
||||||
script.
|
script.
|
||||||
// TODO: internen Kartendienst nutzen
|
// TODO: internen Kartendienst nutzen
|
||||||
|
// TODO: Kartendienst-Credit anzeigen
|
||||||
// var map_tile = !{JSON.stringify(public.map_tile).replace(/<\//g, '<\\/')}
|
// var map_tile = !{JSON.stringify(public.map_tile).replace(/<\//g, '<\\/')}
|
||||||
var data = !{JSON.stringify(dataSet).replace(/<\//g, '<\\/')}
|
var data = !{JSON.stringify(dataSet).replace(/<\//g, '<\\/')}
|
||||||
for (var i in data) {
|
for (var i in data) {
|
||||||
|
|||||||
@ -23,3 +23,5 @@ block content
|
|||||||
option(selected)= i+1
|
option(selected)= i+1
|
||||||
else
|
else
|
||||||
option= i+1
|
option= i+1
|
||||||
|
// TODO: anpassen der Durchsage je Benutzer, durch eigene Ersetzung und Reihenfolge
|
||||||
|
// TODO: Ausnahmen festlegen können, wann keine Musik abgespielt wird
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user