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) {