kleine Anpassungen
This commit is contained in:
parent
0b7a6d6a44
commit
3cfd48a807
3
.gitignore
vendored
3
.gitignore
vendored
@ -75,6 +75,9 @@ typings/
|
|||||||
# FuseBox cache
|
# FuseBox cache
|
||||||
.fusebox/
|
.fusebox/
|
||||||
|
|
||||||
|
# Forever
|
||||||
|
.foreverignore
|
||||||
|
|
||||||
# old Scripts
|
# old Scripts
|
||||||
_old/
|
_old/
|
||||||
|
|
||||||
|
|||||||
1
TODO.md
1
TODO.md
@ -28,6 +28,7 @@
|
|||||||
- Uhrzeit am Anfang irgendwo platzieren (nicht immer oben links)
|
- Uhrzeit am Anfang irgendwo platzieren (nicht immer oben links)
|
||||||
- Maus auf Alarmmonitor nach Zeit x ausblenden
|
- Maus auf Alarmmonitor nach Zeit x ausblenden
|
||||||
- Datenbank nach bestimmter Zeit aufräumen
|
- Datenbank nach bestimmter Zeit aufräumen
|
||||||
|
- Client-IP bei Reverse-Proxy richtig ermitteln
|
||||||
|
|
||||||
## 3. Priorität (Neuerungen)
|
## 3. Priorität (Neuerungen)
|
||||||
|
|
||||||
|
|||||||
93
package-lock.json
generated
93
package-lock.json
generated
@ -265,6 +265,11 @@
|
|||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"buffer-equal-constant-time": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
|
||||||
|
},
|
||||||
"bytes": {
|
"bytes": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
||||||
@ -531,6 +536,14 @@
|
|||||||
"safer-buffer": "^2.1.0"
|
"safer-buffer": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ecdsa-sig-formatter": {
|
||||||
|
"version": "1.0.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
|
||||||
|
"integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ee-first": {
|
"ee-first": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||||
@ -1075,6 +1088,23 @@
|
|||||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
|
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
|
||||||
},
|
},
|
||||||
|
"jsonwebtoken": {
|
||||||
|
"version": "8.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
|
||||||
|
"integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
|
||||||
|
"requires": {
|
||||||
|
"jws": "^3.2.2",
|
||||||
|
"lodash.includes": "^4.3.0",
|
||||||
|
"lodash.isboolean": "^3.0.3",
|
||||||
|
"lodash.isinteger": "^4.0.4",
|
||||||
|
"lodash.isnumber": "^3.0.3",
|
||||||
|
"lodash.isplainobject": "^4.0.6",
|
||||||
|
"lodash.isstring": "^4.0.1",
|
||||||
|
"lodash.once": "^4.0.0",
|
||||||
|
"ms": "^2.1.1",
|
||||||
|
"semver": "^5.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"jsprim": {
|
"jsprim": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||||
@ -1095,6 +1125,25 @@
|
|||||||
"promise": "^7.0.1"
|
"promise": "^7.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"jwa": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
|
||||||
|
"requires": {
|
||||||
|
"buffer-equal-constant-time": "1.0.1",
|
||||||
|
"ecdsa-sig-formatter": "1.0.11",
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"jws": {
|
||||||
|
"version": "3.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
|
||||||
|
"integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
|
||||||
|
"requires": {
|
||||||
|
"jwa": "^1.4.1",
|
||||||
|
"safe-buffer": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"kind-of": {
|
"kind-of": {
|
||||||
"version": "3.2.2",
|
"version": "3.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
||||||
@ -1113,6 +1162,41 @@
|
|||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
|
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
|
||||||
},
|
},
|
||||||
|
"lodash.includes": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
|
||||||
|
"integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
|
||||||
|
},
|
||||||
|
"lodash.isboolean": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
|
||||||
|
"integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
|
||||||
|
},
|
||||||
|
"lodash.isinteger": {
|
||||||
|
"version": "4.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
|
||||||
|
"integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
|
||||||
|
},
|
||||||
|
"lodash.isnumber": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
|
||||||
|
"integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
|
||||||
|
},
|
||||||
|
"lodash.isplainobject": {
|
||||||
|
"version": "4.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
|
||||||
|
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
|
||||||
|
},
|
||||||
|
"lodash.isstring": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
|
||||||
|
"integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
|
||||||
|
},
|
||||||
|
"lodash.once": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
|
||||||
|
"integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
|
||||||
|
},
|
||||||
"longest": {
|
"longest": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
||||||
@ -4444,6 +4528,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"passport-jwt": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==",
|
||||||
|
"requires": {
|
||||||
|
"jsonwebtoken": "^8.2.0",
|
||||||
|
"passport-strategy": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"passport-local": {
|
"passport-local": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
|
||||||
|
|||||||
@ -17,12 +17,14 @@
|
|||||||
"npm": "^6.13.4",
|
"npm": "^6.13.4",
|
||||||
"passport": "^0.4.1",
|
"passport": "^0.4.1",
|
||||||
"passport-ip": "^0.1.2",
|
"passport-ip": "^0.1.2",
|
||||||
|
"passport-jwt": "^4.0.0",
|
||||||
"passport-local": "^1.0.0",
|
"passport-local": "^1.0.0",
|
||||||
"passport.socketio": "^3.7.0",
|
"passport.socketio": "^3.7.0",
|
||||||
"pug": "^2.0.4",
|
"pug": "^2.0.4",
|
||||||
"req-flash": "0.0.3",
|
"req-flash": "0.0.3",
|
||||||
"serve-favicon": "^2.5.0",
|
"serve-favicon": "^2.5.0",
|
||||||
"socket.io": "^2.3.0",
|
"socket.io": "^2.3.0",
|
||||||
|
"socket.io-client": "^2.3.0",
|
||||||
"sqlite3": "^4.1.1"
|
"sqlite3": "^4.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
|
|||||||
@ -29,9 +29,10 @@ app.use(bodyParser.urlencoded({
|
|||||||
// Scripte einbinden
|
// Scripte einbinden
|
||||||
var app_cfg = require('./server/app_cfg.js');
|
var app_cfg = require('./server/app_cfg.js');
|
||||||
var sql_cfg = require('./server/sql_cfg')(fs, bcrypt, app_cfg);
|
var sql_cfg = require('./server/sql_cfg')(fs, bcrypt, app_cfg);
|
||||||
var sql = require('./server/sql_qry')(sql_cfg, async, app_cfg)
|
var sql = require('./server/sql_qry')(sql_cfg, async, app_cfg);
|
||||||
var waip_io = require('./server/waip_io')(io, sql, async, app_cfg);
|
var waip = require('./server/waip')(io, sql, async, app_cfg);
|
||||||
var udp = require('./server/udp')(app_cfg, waip_io, sql);
|
var socket = require('./server/socket')(io, sql, app_cfg, waip);
|
||||||
|
var udp = require('./server/udp')(app_cfg, waip, sql);
|
||||||
var auth = require('./server/auth')(app, app_cfg, sql_cfg, async, bcrypt, passport, io);
|
var auth = require('./server/auth')(app, app_cfg, sql_cfg, async, bcrypt, passport, io);
|
||||||
var routes = require('./server/routing')(app, sql, app_cfg, passport, auth, udp);
|
var routes = require('./server/routing')(app, sql, app_cfg, passport, auth, udp);
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@ app_cfg.global = {
|
|||||||
http_port: 3000,
|
http_port: 3000,
|
||||||
https_port: 3443,
|
https_port: 3443,
|
||||||
udpport: 60233,
|
udpport: 60233,
|
||||||
|
remoteapi: "http://localhost:8078/api",
|
||||||
database: './database.sqlite3',
|
database: './database.sqlite3',
|
||||||
soundpath: '/public/media/',
|
soundpath: '/public/media/',
|
||||||
mediapath: '/media/',
|
mediapath: '/media/',
|
||||||
|
|||||||
81
server/socket.js
Executable file
81
server/socket.js
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
module.exports = function(io, sql, app_cfg, waip) {
|
||||||
|
|
||||||
|
// Module laden
|
||||||
|
//client.js
|
||||||
|
var io_api = require('socket.io-client');
|
||||||
|
var socket_api = io_api.connect(app_cfg.global.remoteapi, {reconnect: true});
|
||||||
|
|
||||||
|
// Add a connect listener
|
||||||
|
socket_api.on('connect', function (socket_api) {
|
||||||
|
console.log('Connected!');
|
||||||
|
});
|
||||||
|
socket_api.emit('CH01', 'me', 'test msg');
|
||||||
|
|
||||||
|
|
||||||
|
// Socket.IO Server
|
||||||
|
io.on('connection', function(socket) {
|
||||||
|
sql.db_log('WAIP', 'Anwendung von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geoeffnet');
|
||||||
|
io.sockets.to(socket.id).emit('io.version', app_cfg.global.app_id);
|
||||||
|
// disconnect
|
||||||
|
socket.on('disconnect', function() {
|
||||||
|
sql.db_log('WAIP', 'Alarmmonitor von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geschlossen');
|
||||||
|
sql.db_client_delete(socket.id);
|
||||||
|
});
|
||||||
|
// Aufruf des Alarmmonitors einer bestimmten Wache verarbeiten
|
||||||
|
socket.on('wachen_id', function(wachen_id) {
|
||||||
|
sql.db_log('WAIP', 'Alarmmonitor Nr. ' + wachen_id + ' von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') aufgerufen');
|
||||||
|
// prüfen ob Wachenummer in der Datenbank hinterlegt ist
|
||||||
|
sql.db_wache_vorhanden(wachen_id,function(result) {
|
||||||
|
// wenn die Wachennummer vorhanden/plausibel dann weiter
|
||||||
|
if (result) {
|
||||||
|
// Socket-Room beitreiten
|
||||||
|
socket.join(wachen_id, function() {
|
||||||
|
// Socket-ID und Client-IP in der Datenbank speichern
|
||||||
|
sql.db_client_save(socket.id, socket.request.connection.remoteAddress, wachen_id);
|
||||||
|
// prüfen ob für diese Wache ein Einsatz vorhanden ist
|
||||||
|
sql.db_einsatz_vorhanden(wachen_id, socket.request.user.id, function(result_einsatz) {
|
||||||
|
if (result_einsatz) {
|
||||||
|
console.log(result_einsatz[0].waip_einsaetze_ID);
|
||||||
|
sql.db_log('WAIP', 'Einsatz ' + result_einsatz[0].waip_einsaetze_ID + ' fuer Wache ' + wachen_id + ' vorhanden');
|
||||||
|
//letzten Einsatz verteilen
|
||||||
|
waip.einsatz_verteilen(result_einsatz[0].waip_einsaetze_ID, socket.id, wachen_id);
|
||||||
|
sql.db_update_client_status(socket, result_einsatz[0].waip_einsaetze_ID);
|
||||||
|
//vorhanden Rückmeldungen verteilen
|
||||||
|
sql.db_get_response(result_einsatz[0].waip_einsaetze_ID, function(result){
|
||||||
|
if (result) {
|
||||||
|
waip.reuckmeldung_verteilen(result_einsatz[0].waip_einsaetze_ID, result);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
sql.db_log('WAIP', 'Kein Einsatz fuer Wache ' + wachen_id + ' vorhanden, Standby');
|
||||||
|
//oder falls kein Einsatz vorhanden ist, dann
|
||||||
|
io.sockets.to(socket.id).emit('io.standby', null);
|
||||||
|
sql.db_update_client_status(socket, null);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
sql.db_log('Fehler-WAIP', 'Fehler: Wachnnummer ' + wachen_id + 'nicht vorhanden');
|
||||||
|
io.sockets.to(socket.id).emit('io.error', 'Fehler: Wachnnummer \'' + wachen_id + '\' nicht vorhanden!');
|
||||||
|
};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
socket.on('response', function(waip_id, ek, ma, fk, agt) {
|
||||||
|
var i_ek = ek ? 1 : 0;
|
||||||
|
var i_ma = ma ? 1 : 0;
|
||||||
|
var i_fk = fk ? 1 : 0;
|
||||||
|
var i_agt = agt ? 1 : 0;
|
||||||
|
sql.db_update_response(waip_id, i_ek, i_ma, i_fk, i_agt, function(result){
|
||||||
|
waip.reuckmeldung_verteilen(waip_id, result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// TODO: socket.on(Version) um Server-Version abzugleichen
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//return {
|
||||||
|
// send_message: send_message
|
||||||
|
//};
|
||||||
|
};
|
||||||
@ -1,4 +1,4 @@
|
|||||||
module.exports = function(app_cfg, waip_io, sql) {
|
module.exports = function(app_cfg, waip, sql) {
|
||||||
|
|
||||||
// Module laden
|
// Module laden
|
||||||
var dgram = require('dgram');
|
var dgram = require('dgram');
|
||||||
@ -25,7 +25,7 @@ module.exports = function(app_cfg, waip_io, sql) {
|
|||||||
udp_server.on('message', function(message, remote) {
|
udp_server.on('message', function(message, remote) {
|
||||||
if (isValidJSON(message)) {
|
if (isValidJSON(message)) {
|
||||||
sql.db_log('WAIP', 'Neuer Einsatz von ' + remote.address + ':' + remote.port + ': ' + message);
|
sql.db_log('WAIP', 'Neuer Einsatz von ' + remote.address + ':' + remote.port + ': ' + message);
|
||||||
waip_io.einsatz_speichern(message);
|
waip.einsatz_speichern(message);
|
||||||
} else {
|
} else {
|
||||||
sql.db_log('Fehler-WAIP', 'Fehler: Einsatz von ' + remote.address + ':' + remote.port + ' Fehlerhaft: ' + message);
|
sql.db_log('Fehler-WAIP', 'Fehler: Einsatz von ' + remote.address + ':' + remote.port + ' Fehlerhaft: ' + message);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,65 +1,5 @@
|
|||||||
module.exports = function(io, sql, async, app_cfg) {
|
module.exports = function(io, sql, async, app_cfg) {
|
||||||
|
|
||||||
// Socket.IO
|
|
||||||
io.on('connection', function(socket) {
|
|
||||||
sql.db_log('WAIP', 'Anwendung von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geoeffnet');
|
|
||||||
io.sockets.to(socket.id).emit('io.version', app_cfg.global.app_id);
|
|
||||||
// disconnect
|
|
||||||
socket.on('disconnect', function() {
|
|
||||||
sql.db_log('WAIP', 'Alarmmonitor von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') geschlossen');
|
|
||||||
sql.db_client_delete(socket.id);
|
|
||||||
});
|
|
||||||
// Aufruf des Alarmmonitors einer bestimmten Wache verarbeiten
|
|
||||||
socket.on('wachen_id', function(wachen_id) {
|
|
||||||
sql.db_log('WAIP', 'Alarmmonitor Nr. ' + wachen_id + ' von ' + socket.request.connection.remoteAddress + ' (' + socket.id + ') aufgerufen');
|
|
||||||
// prüfen ob Wachenummer in der Datenbank hinterlegt ist
|
|
||||||
sql.db_wache_vorhanden(wachen_id,function(result) {
|
|
||||||
// wenn die Wachennummer vorhanden/plausibel dann weiter
|
|
||||||
if (result) {
|
|
||||||
// Socket-Room beitreiten
|
|
||||||
socket.join(wachen_id, function() {
|
|
||||||
// Socket-ID und Client-IP in der Datenbank speichern
|
|
||||||
sql.db_client_save(socket.id, socket.request.connection.remoteAddress, wachen_id);
|
|
||||||
// prüfen ob für diese Wache ein Einsatz vorhanden ist
|
|
||||||
sql.db_einsatz_vorhanden(wachen_id, socket.request.user.id, function(result_einsatz) {
|
|
||||||
if (result_einsatz) {
|
|
||||||
console.log(result_einsatz[0].waip_einsaetze_ID);
|
|
||||||
sql.db_log('WAIP', 'Einsatz ' + result_einsatz[0].waip_einsaetze_ID + ' fuer Wache ' + wachen_id + ' vorhanden');
|
|
||||||
//letzten Einsatz verteilen
|
|
||||||
einsatz_verteilen(result_einsatz[0].waip_einsaetze_ID, socket.id, wachen_id);
|
|
||||||
sql.db_update_client_status(socket, result_einsatz[0].waip_einsaetze_ID);
|
|
||||||
//vorhanden Rückmeldungen verteilen
|
|
||||||
sql.db_get_response(result_einsatz[0].waip_einsaetze_ID, function(result){
|
|
||||||
if (result) {
|
|
||||||
reuckmeldung_verteilen(result_einsatz[0].waip_einsaetze_ID, result);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
sql.db_log('WAIP', 'Kein Einsatz fuer Wache ' + wachen_id + ' vorhanden, Standby');
|
|
||||||
//oder falls kein Einsatz vorhanden ist, dann
|
|
||||||
io.sockets.to(socket.id).emit('io.standby', null);
|
|
||||||
sql.db_update_client_status(socket, null);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
sql.db_log('Fehler-WAIP', 'Fehler: Wachnnummer ' + wachen_id + 'nicht vorhanden');
|
|
||||||
io.sockets.to(socket.id).emit('io.error', 'Fehler: Wachnnummer \'' + wachen_id + '\' nicht vorhanden!');
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
socket.on('response', function(waip_id, ek, ma, fk, agt) {
|
|
||||||
var i_ek = ek ? 1 : 0;
|
|
||||||
var i_ma = ma ? 1 : 0;
|
|
||||||
var i_fk = fk ? 1 : 0;
|
|
||||||
var i_agt = agt ? 1 : 0;
|
|
||||||
sql.db_update_response(waip_id, i_ek, i_ma, i_fk, i_agt, function(result){
|
|
||||||
reuckmeldung_verteilen(waip_id, result);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
// TODO: socket.on(Version) um Server-Version abzugleichen
|
|
||||||
});
|
|
||||||
|
|
||||||
// Einsatzmeldung in Datenbank speichern
|
// Einsatzmeldung in Datenbank speichern
|
||||||
function einsatz_speichern(message) {
|
function einsatz_speichern(message) {
|
||||||
// Einsatzmeldung (JSON) speichern
|
// Einsatzmeldung (JSON) speichern
|
||||||
@ -323,6 +263,8 @@ module.exports = function(io, sql, async, app_cfg) {
|
|||||||
// TODO: Funktion um Clients "neuzustarten" (Seite remote neu laden)
|
// TODO: Funktion um Clients "neuzustarten" (Seite remote neu laden)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
einsatz_speichern: einsatz_speichern
|
einsatz_speichern: einsatz_speichern,
|
||||||
|
einsatz_verteilen: einsatz_verteilen,
|
||||||
|
reuckmeldung_verteilen: reuckmeldung_verteilen
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -8,5 +8,5 @@ block content
|
|||||||
include includes/clock
|
include includes/clock
|
||||||
|
|
||||||
script(src='/js/textFit.min.js')
|
script(src='/js/textFit.min.js')
|
||||||
script(src='/js/waip.js')
|
script(src='/js/waip_client.js')
|
||||||
|
|
||||||
|
|||||||
@ -11,5 +11,5 @@ block content
|
|||||||
include includes/wachalarm
|
include includes/wachalarm
|
||||||
script(src='/js/leaflet.js')
|
script(src='/js/leaflet.js')
|
||||||
script(src='/js/textFit.min.js')
|
script(src='/js/textFit.min.js')
|
||||||
script(src='/js/waip.js')
|
script(src='/js/waip_client.js')
|
||||||
|
|
||||||
|
|||||||
@ -21,4 +21,4 @@ block content
|
|||||||
script.
|
script.
|
||||||
wachen_id="#{wachen_id}"
|
wachen_id="#{wachen_id}"
|
||||||
waip_id=null
|
waip_id=null
|
||||||
script(src='/js/waip.js')
|
script(src='/js/waip_client.js')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user