diff --git a/htdocs/lib/MessagePanel.js b/htdocs/lib/MessagePanel.js
index 037a8e2b..e0215de0 100644
--- a/htdocs/lib/MessagePanel.js
+++ b/htdocs/lib/MessagePanel.js
@@ -550,6 +550,33 @@ HfdlMessagePanel.prototype.pushMessage = function(message) {
return a['id'];
}
+ var renderPosition = function(hfnpdu) {
+ if ('pos' in hfnpdu) {
+ var pos = hfnpdu['pos'];
+ var lat = pos['lat'] || 180;
+ var lon = pos['lon'] || 180;
+ if (Math.abs(lat) <= 90 && Math.abs(lon) <= 180) {
+ return '
Position: ' + pos['lat'] + ', ' + pos['lon'] + '
';
+ }
+ }
+ return '';
+ }
+
+ var renderLogon = function(lpdu) {
+ var details = ''
+ if (lpdu['ac_info'] && lpdu['ac_info']['icao']) {
+ details += 'ICAO: ' + lpdu['ac_info']['icao'] + '
';
+ }
+ if (lpdu['hfnpdu']) {
+ var hfnpdu = lpdu['hfnpdu'];
+ if (hfnpdu['flight_id'] && hfnpdu['flight_id'] !== '') {
+ details += 'Flight: ' + lpdu['hfnpdu']['flight_id'] + '
'
+ }
+ details += renderPosition(hfnpdu);
+ }
+ return details;
+ }
+
// TODO remove safety net once parsing is complete
try {
var payload = message['hfdl'];
@@ -575,14 +602,7 @@ HfdlMessagePanel.prototype.pushMessage = function(message) {
// performance data
details = 'Performance data
';
details += 'Flight: ' + hfnpdu['flight_id'] + '
';
- if ('pos' in hfnpdu) {
- var pos = hfnpdu['pos'];
- var lat = pos['lat'] || 180;
- var lon = pos['lon'] || 180;
- if (Math.abs(lat) <= 90 && Math.abs(lon) <= 180) {
- details += 'Position: ' + pos['lat'] + ', ' + pos['lon'] + '
';
- }
- }
+ details += renderPosition(hnpdu);
} else if (hfnpdu['type']['id'] === 255) {
// enveloped data
if ('acars' in hfnpdu) {
@@ -595,33 +615,27 @@ HfdlMessagePanel.prototype.pushMessage = function(message) {
} else if (lpdu['type']['id'] === 63) {
details = 'Logoff request
';
if (lpdu['ac_info'] && lpdu['ac_info']['icao']) {
- details += 'ICAO: ' + lpdu['ac_info']['icao'];
+ details += '
ICAO: ' + lpdu['ac_info']['icao'] + '
';
}
} else if (lpdu['type']['id'] === 79) {
details = '
Logon resume
';
- if (lpdu['ac_info'] && lpdu['ac_info']['icao']) {
- details += '
ICAO: ' + lpdu['ac_info']['icao'];
- }
+ details += renderLogon(lpdu);
} else if (lpdu['type']['id'] === 95) {
details = '
Logon resume confirmation
';
} else if (lpdu['type']['id'] === 143) {
details = '
Logon request
';
- if (lpdu['ac_info'] && lpdu['ac_info']['icao']) {
- details += '
ICAO: ' + lpdu['ac_info']['icao'];
- }
+ details += renderLogon(lpdu);
} else if (lpdu['type']['id'] === 159) {
details = '
Logon confirmation
';
if (lpdu['ac_info'] && lpdu['ac_info']['icao']) {
- details += '
ICAO: ' + lpdu['ac_info']['icao'];
+ details += '
ICAO: ' + lpdu['ac_info']['icao'] + '
';
}
if (lpdu['assigned_ac_id']) {
details += '
Assigned aircraft ID: ' + lpdu['assigned_ac_id'] + '
';
}
} else if (lpdu['type']['id'] === 191) {
details = '
Logon request (DLS)
';
- if (lpdu['ac_info'] && lpdu['ac_info']['icao']) {
- details += '
ICAO: ' + lpdu['ac_info']['icao'];
- }
+ details += renderLogon(lpdu);
}
}
} catch (e) {