diff --git a/htdocs/lib/MapManager.js b/htdocs/lib/MapManager.js index 26e6beb7..7ea33f14 100644 --- a/htdocs/lib/MapManager.js +++ b/htdocs/lib/MapManager.js @@ -103,10 +103,10 @@ MapManager.prototype.process = function(e) { Utils.setVesselUrl(this.config.vessel_url); } if ('flight_url' in this.config) { - flight_url = this.config.flight_url; + Utils.setFlightUrl(this.config.flight_url); } if ('modes_url' in this.config) { - modes_url = this.config.modes_url; + Utils.setIcaoUrl(this.config.modes_url); } break; diff --git a/htdocs/lib/MapMarkers.js b/htdocs/lib/MapMarkers.js index c54d4fec..bcde0cac 100644 --- a/htdocs/lib/MapMarkers.js +++ b/htdocs/lib/MapMarkers.js @@ -737,11 +737,11 @@ AircraftMarker.prototype.getInfoHTML = function(name, receiverMarker = null) { } if (this.icao) { - detailsString += Utils.makeListItem('ICAO', Utils.linkify(this.icao, modes_url)); + detailsString += Utils.makeListItem('ICAO', Utils.linkifyIcao(this.icao)); } if (this.aircraft) { - detailsString += Utils.makeListItem('Aircraft', Utils.linkify(this.aircraft, flight_url)); + detailsString += Utils.makeListItem('Aircraft', Utils.linkifyFlight(this.aircraft)); } if (this.squawk) { @@ -792,19 +792,15 @@ AircraftMarker.prototype.getInfoHTML = function(name, receiverMarker = null) { } // Linkify title based on what it is (flight, aircraft, ICAO code) - var text = this.flight? this.flight : this.aircraft? this.aircraft : name; - var url = null; if (this.flight && this.flight.match(/^[A-Z]{3}[0-9]+[A-Z]*$/)) { - name = this.flight; - url = flight_url; + name = Utils.linkifyFlight(this.flight); } else if(this.aircraft) { - name = this.aircraft; - url = flight_url; + name = Utils.linkifyFlight(this.aircraft); } else if(name.match(/^[0-9A-F]{6}$/)) { - url = modes_url; + name = Utils.linkifyIcao(name); } - return '
| ' + dst + ' | ' + '' + data + ' | ' + '' - )); + ).css('background-color', bcolor).css('color', fcolor)); // Append messsage if present if (msg.message) { @@ -659,10 +645,10 @@ IsmMessagePanel.prototype.formatAttr = function(msg, key) { IsmMessagePanel.prototype.pushMessage = function(msg) { // Get basic information, assume white color if missing - var address = msg.hasOwnProperty('id')? msg.id : "???"; - var device = msg.hasOwnProperty('model')? msg.model : ""; - var tstamp = msg.hasOwnProperty('time')? msg.time : ""; - var color = msg.hasOwnProperty('color')? msg.color : "#FFF"; + var address = msg.hasOwnProperty('id')? msg.id : '???'; + var device = msg.hasOwnProperty('model')? msg.model : ''; + var tstamp = msg.hasOwnProperty('time')? msg.time : ''; + var color = msg.hasOwnProperty('color')? msg.color : '#FFF'; // Append message header (address, time, etc) var $b = $(this.el).find('tbody'); diff --git a/htdocs/lib/Utils.js b/htdocs/lib/Utils.js index 4c9837d3..4486373c 100644 --- a/htdocs/lib/Utils.js +++ b/htdocs/lib/Utils.js @@ -6,6 +6,8 @@ function Utils() {} Utils.callsign_url = null; Utils.vessel_url = null; +Utils.flight_url = null; +Utils.icao_url = null; // Set URL for linkifying callsigns Utils.setCallsignUrl = function(url) { @@ -17,6 +19,16 @@ Utils.setVesselUrl = function(url) { this.vessel_url = url; }; +// Set URL for linkifying flight and aircraft IDs +Utils.setFlightUrl = function(url) { + this.flight_url = url; +}; + +// Set URL for linkifying ICAO aircraft IDs +Utils.setIcaoUrl = function(url) { + this.icao_url = url; +}; + // Escape HTML code. Utils.htmlEscape = function(input) { return $('').text(input).html() @@ -73,6 +85,16 @@ Utils.linkifyVessel = function(mmsi) { return this.linkify(mmsi, this.vessel_url, mmsi, this.mmsi2country(mmsi)); }; +// Create link to a flight or an aircraft +Utils.linkifyFlight = function(flight, content = null) { + return this.linkify(flight, this.flight_url, content); +}; + +// Create link to a MODE-S ICAO ID +Utils.linkifyIcao = function(icao, content = null) { + return this.linkify(icao, this.icao_url, content); +}; + // Create link to tune OWRX to the given frequency and modulation. Utils.linkifyFreq = function(freq, mod) { var text; diff --git a/htdocs/map-google.js b/htdocs/map-google.js index 0c3665a1..a2031dcb 100644 --- a/htdocs/map-google.js +++ b/htdocs/map-google.js @@ -1,7 +1,3 @@ -// Marker.linkify() uses these URLs -var flight_url = null; -var modes_url = null; - // reasonable default; will be overriden by server var retention_time = 2 * 60 * 60 * 1000; diff --git a/htdocs/map-leaflet.js b/htdocs/map-leaflet.js index b24c16db..25df397f 100644 --- a/htdocs/map-leaflet.js +++ b/htdocs/map-leaflet.js @@ -1,7 +1,3 @@ -// Marker.linkify() uses these URLs -var flight_url = null; -var modes_url = null; - var mapSources = [ { name: 'OpenStreetMap', diff --git a/htdocs/openwebrx.js b/htdocs/openwebrx.js index 712cfe47..903a8090 100644 --- a/htdocs/openwebrx.js +++ b/htdocs/openwebrx.js @@ -1076,15 +1076,13 @@ function on_ws_recv(evt) { if ('flight_url' in config) { var hfdl_panel = $('#openwebrx-panel-hfdl-message').hfdlMessagePanel(); var adsb_panel = $('#openwebrx-panel-adsb-message').adsbMessagePanel(); - hfdl_panel.setFlightUrl(config['flight_url']); - adsb_panel.setFlightUrl(config['flight_url']); + Utils.setFlightUrl(config['flight_url']); } if ('modes_url' in config) { var hfdl_panel = $('#openwebrx-panel-hfdl-message').hfdlMessagePanel(); var adsb_panel = $('#openwebrx-panel-adsb-message').adsbMessagePanel(); - hfdl_panel.setModeSUrl(config['modes_url']); - adsb_panel.setModeSUrl(config['modes_url']); + Utils.setIcaoUrl(config['modes_url']); } if ('callsign_url' in config) { diff --git a/owrx/dsc.py b/owrx/dsc.py index 6a66b41f..36b68715 100644 --- a/owrx/dsc.py +++ b/owrx/dsc.py @@ -19,10 +19,9 @@ class DscParser(TextParser): if self.service: return None # Expect JSON data in text form - logger.debug("TEXT: {0}".format(msg)) out = json.loads(msg) # Add mode name and a color to identify the sender out["mode"] = "DSC" out["color"] = self.colors.getColor(out["src"]) - logger.debug("JSON: {0}".format(out)) + logger.debug("{0}".format(out)) return out