send changed keys over websocket connection for the map
This commit is contained in:
		| @@ -1,4 +1,4 @@ | ||||
| (function(){ | ||||
| $(function(){ | ||||
|     var query = window.location.search.replace(/^\?/, '').split('&').map(function(v){ | ||||
|         var s = v.split('='); | ||||
|         var r = {}; | ||||
| @@ -212,6 +212,8 @@ | ||||
|  | ||||
|     var reconnect_timeout = false; | ||||
|  | ||||
|     var config = {} | ||||
|  | ||||
|     var connect = function(){ | ||||
|         var ws = new WebSocket(ws_url); | ||||
|         ws.onopen = function(){ | ||||
| @@ -225,58 +227,65 @@ | ||||
|                 return | ||||
|             } | ||||
|             if (e.data.substr(0, 16) == "CLIENT DE SERVER") { | ||||
|                 console.log("Server acknowledged WebSocket connection."); | ||||
|                 return | ||||
|             } | ||||
|             try { | ||||
|                 var json = JSON.parse(e.data); | ||||
|                 switch (json.type) { | ||||
|                     case "config": | ||||
|                         var config = json.value; | ||||
|                         var receiverPos = { | ||||
|                             lat: config.receiver_gps.lat, | ||||
|                             lng: config.receiver_gps.lon | ||||
|                         }; | ||||
|                         if (!map) $.getScript("https://maps.googleapis.com/maps/api/js?key=" + config.google_maps_api_key).done(function(){ | ||||
|                             map = new google.maps.Map($('.openwebrx-map')[0], { | ||||
|                                 center: receiverPos, | ||||
|                                 zoom: 5, | ||||
|                             }); | ||||
|                         Object.assign(config, json.value); | ||||
|                         if ('receiver_gps' in config) { | ||||
|                             var receiverPos = { | ||||
|                                 lat: config.receiver_gps.lat, | ||||
|                                 lng: config.receiver_gps.lon | ||||
|                             }; | ||||
|                             if (!map) $.getScript("https://maps.googleapis.com/maps/api/js?key=" + config.google_maps_api_key).done(function(){ | ||||
|                                 map = new google.maps.Map($('.openwebrx-map')[0], { | ||||
|                                     center: receiverPos, | ||||
|                                     zoom: 5, | ||||
|                                 }); | ||||
|  | ||||
|                             $.getScript("static/lib/nite-overlay.js").done(function(){ | ||||
|                                 nite.init(map); | ||||
|                                 setInterval(function() { nite.refresh() }, 10000); // every 10s | ||||
|                             }); | ||||
|                             $.getScript('static/lib/AprsMarker.js').done(function(){ | ||||
|                                 processUpdates(updateQueue); | ||||
|                                 updateQueue = []; | ||||
|                             }); | ||||
|                                 $.getScript("static/lib/nite-overlay.js").done(function(){ | ||||
|                                     nite.init(map); | ||||
|                                     setInterval(function() { nite.refresh() }, 10000); // every 10s | ||||
|                                 }); | ||||
|                                 $.getScript('static/lib/AprsMarker.js').done(function(){ | ||||
|                                     processUpdates(updateQueue); | ||||
|                                     updateQueue = []; | ||||
|                                 }); | ||||
|  | ||||
|                             var $legend = $(".openwebrx-map-legend"); | ||||
|                             setupLegendFilters($legend); | ||||
|                             map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push($legend[0]); | ||||
|                                 var $legend = $(".openwebrx-map-legend"); | ||||
|                                 setupLegendFilters($legend); | ||||
|                                 map.controls[google.maps.ControlPosition.LEFT_BOTTOM].push($legend[0]); | ||||
|  | ||||
|                             if (!receiverMarker) { | ||||
|                                 receiverMarker = new google.maps.Marker(); | ||||
|                                 receiverMarker.addListener('click', function() { | ||||
|                                     showReceiverInfoWindow(receiverMarker); | ||||
|                                 if (!receiverMarker) { | ||||
|                                     receiverMarker = new google.maps.Marker(); | ||||
|                                     receiverMarker.addListener('click', function() { | ||||
|                                         showReceiverInfoWindow(receiverMarker); | ||||
|                                     }); | ||||
|                                 } | ||||
|                                 receiverMarker.setOptions({ | ||||
|                                     map: map, | ||||
|                                     position: receiverPos, | ||||
|                                     title: config['receiver_name'], | ||||
|                                     config: config | ||||
|                                 }); | ||||
|                             }); else { | ||||
|                                 receiverMarker.setOptions({ | ||||
|                                     map: map, | ||||
|                                     position: receiverPos, | ||||
|                                     config: config | ||||
|                                 }); | ||||
|                             } | ||||
|                         } | ||||
|                         if ('receiver_name' in config && receiverMarker) { | ||||
|                             receiverMarker.setOptions({ | ||||
|                                 map: map, | ||||
|                                 position: receiverPos, | ||||
|                                 title: config['receiver_name'], | ||||
|                                 config: config | ||||
|                             }); | ||||
|                         }); else { | ||||
|                             receiverMarker.setOptions({ | ||||
|                                 map: map, | ||||
|                                 position: receiverPos, | ||||
|                                 title: config['receiver_name'], | ||||
|                                 config: config | ||||
|                                 title: config['receiver_name'] | ||||
|                             }); | ||||
|                         } | ||||
|                         retention_time = config.map_position_retention_time * 1000; | ||||
|                         if ('map_position_retention_time' in config) { | ||||
|                             retention_time = config.map_position_retention_time * 1000; | ||||
|                         } | ||||
|                     break; | ||||
|                     case "update": | ||||
|                         processUpdates(json.value); | ||||
| @@ -464,4 +473,4 @@ | ||||
|         }); | ||||
|     } | ||||
|  | ||||
| })(); | ||||
| }); | ||||
|   | ||||
| @@ -459,14 +459,15 @@ class MapConnection(OpenWebRxClient): | ||||
|         super().__init__(conn) | ||||
|  | ||||
|         pm = Config.get() | ||||
|         self.write_config( | ||||
|             pm.filter( | ||||
|                 "google_maps_api_key", | ||||
|                 "receiver_gps", | ||||
|                 "map_position_retention_time", | ||||
|                 "receiver_name", | ||||
|             ).__dict__() | ||||
|         filtered_config = pm.filter( | ||||
|             "google_maps_api_key", | ||||
|             "receiver_gps", | ||||
|             "map_position_retention_time", | ||||
|             "receiver_name", | ||||
|         ) | ||||
|         filtered_config.wire(self.write_config) | ||||
|  | ||||
|         self.write_config(filtered_config.__dict__()) | ||||
|  | ||||
|         Map.getSharedInstance().addClient(self) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jakob Ketterl
					Jakob Ketterl