update Fr 8. Mai 13:01:01 CEST 2020
This commit is contained in:
parent
3d6ba81215
commit
3b4ada56ae
@ -362,3 +362,224 @@ if (arrayItem.agt){
|
|||||||
});
|
});
|
||||||
|
|
||||||
console.log(items.get());
|
console.log(items.get());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ########################### */
|
||||||
|
/* ######## SOCKET.IO ######## */
|
||||||
|
/* ########################### */
|
||||||
|
|
||||||
|
// Websocket
|
||||||
|
var socket = io('/dbrd');
|
||||||
|
|
||||||
|
// Wachen-ID bei Connect an Server senden
|
||||||
|
socket.on('connect', function () {
|
||||||
|
socket.emit('dbrd', dbrd_uuid);
|
||||||
|
$('#waipModal').modal('hide');
|
||||||
|
// TODO: bei Reconnect des Clients durch Verbindungsabbruch, erneut Daten anfordern
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on('connect_error', function (err) {
|
||||||
|
$('#waipModalTitle').html('FEHLER');
|
||||||
|
$('#waipModalBody').html('Verbindung zum Server getrennt!');
|
||||||
|
$('#waipModal').modal('show');
|
||||||
|
});
|
||||||
|
|
||||||
|
// ID von Server und Client vergleichen, falls ungleich -> Seite neu laden
|
||||||
|
socket.on('io.version', function (server_id) {
|
||||||
|
if (client_id != server_id) {
|
||||||
|
$('#waipModal').modal('hide');
|
||||||
|
setTimeout(function () {
|
||||||
|
$('#waipModalTitle').html('ACHTUNG');
|
||||||
|
$('#waipModalBody').html('Neue Server-Version. Seite wird in 10 Sekunden neu geladen!');
|
||||||
|
$('#waipModal').modal('show');
|
||||||
|
setTimeout(function () {
|
||||||
|
location.reload();
|
||||||
|
}, 10000);
|
||||||
|
}, 1000);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// ggf. Fehler ausgeben
|
||||||
|
socket.on('io.error', function (data) {
|
||||||
|
console.log('Error:', data);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Daten löschen, Uhr anzeigen
|
||||||
|
socket.on('io.standby', function (data) {
|
||||||
|
// Einsatz-ID auf 0 setzen
|
||||||
|
waip_id = null;
|
||||||
|
// TODO: Wenn vorhanden, hier #hilfsfrist zurücksetzen
|
||||||
|
$('#einsatz_art').removeClass(function (index, className) {
|
||||||
|
return (className.match(/(^|\s)bg-\S+/g) || []).join(' ');
|
||||||
|
});
|
||||||
|
$('#einsatz_stichwort').removeClass();
|
||||||
|
$('#einsatz_stichwort').html('');
|
||||||
|
$('#sondersignal').removeClass();
|
||||||
|
$('#ortsdaten').html('');
|
||||||
|
$('#besonderheiten').html('');
|
||||||
|
$('#em_alarmiert').empty();
|
||||||
|
$('#em_weitere').html('');
|
||||||
|
reset_rmld();
|
||||||
|
map.setView(new L.LatLng(0, 0), 14);
|
||||||
|
// Tareset_responsebleau ausblenden
|
||||||
|
$('#waiptableau').addClass('d-none');
|
||||||
|
$('#waipclock').removeClass('d-none');
|
||||||
|
// Text anpassen
|
||||||
|
resize_text();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Einsatzdaten laden, Wachalarm anzeigen
|
||||||
|
socket.on('io.neuerEinsatz', function (data) {
|
||||||
|
// DEBUG
|
||||||
|
console.log(data);
|
||||||
|
// Einsatz-ID speichern
|
||||||
|
waip_id = data.id;
|
||||||
|
// Hintergrund der Einsatzart zunächst entfernen
|
||||||
|
$('#einsatz_art').removeClass(function (index, className) {
|
||||||
|
return (className.match(/(^|\s)bg-\S+/g) || []).join(' ');
|
||||||
|
});
|
||||||
|
// Icon der Einsatzart enfernen
|
||||||
|
$('#einsatz_stichwort').removeClass();
|
||||||
|
// Art und Stichwort festlegen hinterlegen
|
||||||
|
switch (data.einsatzart) {
|
||||||
|
case 'Brandeinsatz':
|
||||||
|
$('#einsatz_art').addClass('bg-danger');
|
||||||
|
$('#einsatz_stichwort').addClass('ion-md-flame');
|
||||||
|
$('#rueckmeldung').removeClass('d-none');
|
||||||
|
break;
|
||||||
|
case 'Hilfeleistungseinsatz':
|
||||||
|
$('#einsatz_art').addClass('bg-info');
|
||||||
|
$('#einsatz_stichwort').addClass('ion-md-construct');
|
||||||
|
$('#rueckmeldung').removeClass('d-none');
|
||||||
|
break;
|
||||||
|
case 'Rettungseinsatz':
|
||||||
|
$('#einsatz_art').addClass('bg-warning');
|
||||||
|
$('#einsatz_stichwort').addClass('ion-md-medkit');
|
||||||
|
break;
|
||||||
|
case 'Krankentransport':
|
||||||
|
$('#einsatz_art').addClass('bg-success');
|
||||||
|
$('#einsatz_stichwort').addClass('ion-md-medical');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$('#einsatz_art').addClass('bg-secondary');
|
||||||
|
$('#einsatz_stichwort').addClass('ion-md-information-circle');
|
||||||
|
};
|
||||||
|
$('#einsatz_stichwort').html(' ' + data.stichwort);
|
||||||
|
// Sondersignal setzen
|
||||||
|
$('#sondersignal').removeClass();
|
||||||
|
switch (data.sondersignal) {
|
||||||
|
case 1:
|
||||||
|
$('#sondersignal').addClass('ion-md-notifications');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$('#sondersignal').addClass('ion-md-notifications-off');
|
||||||
|
};
|
||||||
|
// Ortsdaten zusammenstellen und setzen
|
||||||
|
var small_ortsdaten;
|
||||||
|
small_ortsdaten = '';
|
||||||
|
if (data.objekt) {
|
||||||
|
small_ortsdaten = small_ortsdaten + break_text_15(data.objekt) + '<br>';
|
||||||
|
};
|
||||||
|
if (data.ort) {
|
||||||
|
small_ortsdaten = small_ortsdaten + break_text_15(data.ort) + '<br>';
|
||||||
|
};
|
||||||
|
if (data.ortsteil) {
|
||||||
|
small_ortsdaten = small_ortsdaten + break_text_15(data.ortsteil) + '<br>';
|
||||||
|
};
|
||||||
|
if (data.strasse) {
|
||||||
|
small_ortsdaten = small_ortsdaten + break_text_15(data.strasse) + '<br>';
|
||||||
|
};
|
||||||
|
if (small_ortsdaten.substr(small_ortsdaten.length - 4) == '<br>') {
|
||||||
|
small_ortsdaten = small_ortsdaten.slice(0, -4);
|
||||||
|
};
|
||||||
|
$('#ortsdaten').html(small_ortsdaten);
|
||||||
|
// Besonderheiten setzen
|
||||||
|
$('#besonderheiten').html(break_text_35(data.besonderheiten));
|
||||||
|
// alarmierte Einsatzmittel setzen
|
||||||
|
$('#em_alarmiert').empty();
|
||||||
|
var data_em_alarmiert = JSON.parse(data.em_alarmiert);
|
||||||
|
for (var i in data_em_alarmiert) {
|
||||||
|
var tmp = data_em_alarmiert[i].name.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
|
||||||
|
$('#em_alarmiert').append('<div id="cn_' + tmp + '" class="rounded bg-secondary d-flex justify-content-between flex-fill p-2 m-1"></div>');
|
||||||
|
$('#cn_' + tmp).append('<div class="pr-2">' + data_em_alarmiert[i].name + '</div>');
|
||||||
|
};
|
||||||
|
// weitere alarmierte Einsatzmittel setzen
|
||||||
|
$('#em_weitere').html('');
|
||||||
|
var data_em_weitere = JSON.parse(data.em_weitere);
|
||||||
|
if (!data_em_weitere == null) {
|
||||||
|
var tmp;
|
||||||
|
for (var i in data_em_weitere) {
|
||||||
|
if (tmp) {
|
||||||
|
tmp = tmp + ', ' + data_em_weitere[i].name;
|
||||||
|
} else {
|
||||||
|
tmp = data_em_weitere[i].name;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
$('#em_weitere').html(tmp);
|
||||||
|
};
|
||||||
|
// Karte leeren
|
||||||
|
map.removeLayer(marker);
|
||||||
|
map.removeLayer(geojson);
|
||||||
|
// Karte setzen
|
||||||
|
if (data.wgs84_x && data.wgs84_y) {
|
||||||
|
marker = L.marker(new L.LatLng(data.wgs84_x, data.wgs84_y), {
|
||||||
|
icon: redIcon
|
||||||
|
}).addTo(map);
|
||||||
|
map.setView(new L.LatLng(data.wgs84_x, data.wgs84_y), 15);
|
||||||
|
} else {
|
||||||
|
geojson = L.geoJSON(JSON.parse(data.wgs84_area));
|
||||||
|
geojson.addTo(map);
|
||||||
|
map.fitBounds(geojson.getBounds());
|
||||||
|
map.setZoom(13);
|
||||||
|
};
|
||||||
|
// Ablaufzeit setzen
|
||||||
|
start_counter(data.zeitstempel, data.ablaufzeit);
|
||||||
|
// alte Rückmeldung entfernen
|
||||||
|
reset_rmld(data.uuid);
|
||||||
|
recount_rmld(data.uuid);
|
||||||
|
// TODO: Einzeige vergrößern wenn Felder nicht angezeigt werden
|
||||||
|
// Uhr ausblenden
|
||||||
|
$('#waipclock').addClass('d-none');
|
||||||
|
$('#waiptableau').removeClass('d-none');
|
||||||
|
// Text anpassen
|
||||||
|
resize_text();
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on('io.response', function (data) {
|
||||||
|
// DEBUG
|
||||||
|
console.log(data);
|
||||||
|
// Neue Rueckmeldung hinterlegen
|
||||||
|
data.forEach(function (arrayItem) {
|
||||||
|
// HTML festlegen
|
||||||
|
var item_type = '';
|
||||||
|
// wenn Einsatzkraft dann:
|
||||||
|
if (arrayItem.einsatzkraft) {
|
||||||
|
item_type = 'ek';
|
||||||
|
};
|
||||||
|
// wenn Maschinist dann:
|
||||||
|
if (arrayItem.maschinist) {
|
||||||
|
item_type = 'ma';
|
||||||
|
};
|
||||||
|
// wenn Fuehrungskraft dann:
|
||||||
|
if (arrayItem.fuehrungskraft) {
|
||||||
|
item_type = 'fk';
|
||||||
|
};
|
||||||
|
// wenn AGT
|
||||||
|
var item_agt = arrayItem.agt;
|
||||||
|
// Variablen für Anzeige vorbereiten
|
||||||
|
var pg_waip_uuid = arrayItem.waip_uuid;
|
||||||
|
console.log(arrayItem.waip_uuid);
|
||||||
|
console.log(pg_waip_uuid);
|
||||||
|
var pg_rmld_uuid = arrayItem.rmld_uuid;
|
||||||
|
var pg_start = new Date(arrayItem.set_time);
|
||||||
|
var pg_end = new Date(arrayItem.arrival_time);
|
||||||
|
// Progressbar hinterlegen
|
||||||
|
add_resp_progressbar(pg_waip_uuid, pg_rmld_uuid, item_type, item_agt, pg_start, pg_end);
|
||||||
|
// Anzahl der Rückmeldung zählen
|
||||||
|
recount_rmld(pg_waip_uuid);
|
||||||
|
});
|
||||||
|
// Text anpassen
|
||||||
|
resize_text();
|
||||||
|
});
|
||||||
@ -94,7 +94,7 @@ nsp_dbrd.on('connection', function (socket) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
// Disconnect
|
// Disconnect
|
||||||
socket.on('disconnect', function () {
|
socket.on('disconnect', function (uuid) {
|
||||||
sql.db_log('DEBUG', 'Dashboard ' + uuid + ' von ' + client_ip + ' (' + socket.id + ') geschlossen.');
|
sql.db_log('DEBUG', 'Dashboard ' + uuid + ' von ' + client_ip + ' (' + socket.id + ') geschlossen.');
|
||||||
sql.db_client_delete(socket);
|
sql.db_client_delete(socket);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -9,4 +9,6 @@ block content
|
|||||||
include includes/master_dashboard
|
include includes/master_dashboard
|
||||||
script(src='/socket.io/socket.io.js')
|
script(src='/socket.io/socket.io.js')
|
||||||
script(src='/js/leaflet.js')
|
script(src='/js/leaflet.js')
|
||||||
|
script.
|
||||||
|
dbrd_uuid="#{dbrd_uuid}"
|
||||||
script(src='/js/client_dbrd.js')
|
script(src='/js/client_dbrd.js')
|
||||||
Loading…
Reference in New Issue
Block a user