@@ -369,6 +369,7 @@ function clean_refresh(text, force, history_step) {
369369 clearTimeout ( periodical_receivers ) ;
370370 clearTimeout ( periodical_recoveries ) ;
371371
372+ refreshNewReceivers ( true ) ;
372373 refresh ( ) ;
373374
374375 return true ;
@@ -2852,23 +2853,50 @@ function refreshSingleOld(serial) {
28522853}
28532854
28542855function refreshReceivers ( ) {
2855- if ( offline . get ( 'opt_hide_receivers' ) ) return ;
2856+ if ( offline . get ( 'opt_hide_receivers' ) ) {
2857+ refreshNewReceivers ( true ) ;
2858+ } else {
28562859
2857- var mode = wvar . mode . toLowerCase ( ) ;
2858- mode = ( mode == "position" ) ? "latest" : mode . replace ( / / g, "" ) ;
2860+ data_str = "duration=1d" ;
2861+
2862+ $ . ajax ( {
2863+ type : "GET" ,
2864+ url : receivers_url ,
2865+ data : data_str ,
2866+ dataType : "json" ,
2867+ success : function ( response , textStatus ) {
2868+ updateReceivers ( response ) ;
2869+ } ,
2870+ complete : function ( request , textStatus ) {
2871+ refreshNewReceivers ( true ) ;
2872+ }
2873+ } ) ;
2874+ }
2875+ }
28592876
2860- data_str = "duration=3h" ;
2877+ function refreshNewReceivers ( initial ) {
2878+ if ( initial == true ) {
2879+ var mode = wvar . mode . toLowerCase ( ) ;
2880+ mode = ( mode == "position" ) ? "latest" : mode . replace ( / / g, "" ) ;
2881+ //data_str = "duration=" + mode;
2882+ data_str = "duration=3h" ;
2883+ } else {
2884+ data_str = "duration=1m" ;
2885+ }
28612886
28622887 $ . ajax ( {
28632888 type : "GET" ,
28642889 url : receivers_url ,
28652890 data : data_str ,
28662891 dataType : "json" ,
28672892 success : function ( response , textStatus ) {
2868- updateReceivers ( response ) ;
2893+ updateChase ( response ) ;
2894+ if ( ! offline . get ( 'opt_hide_receivers' ) ) {
2895+ updateReceivers ( response ) ;
2896+ }
28692897 } ,
28702898 complete : function ( request , textStatus ) {
2871- periodical_listeners = setTimeout ( refreshReceivers , 60 * 1000 ) ;
2899+ periodical_listeners = setTimeout ( function ( ) { refreshNewReceivers ( false ) } , 30 * 1000 ) ;
28722900 }
28732901 } ) ;
28742902}
@@ -2955,7 +2983,6 @@ function startAjax() {
29552983 //periodical = setInterval(refresh, timer_seconds * 1000);
29562984 refresh ( ) ;
29572985
2958- //periodical_listeners = setInterval(refreshReceivers, 60 * 1000);
29592986 refreshReceivers ( ) ;
29602987 refreshRecoveries ( ) ;
29612988 initRecoveryPane ( ) ;
@@ -3045,6 +3072,42 @@ function updateReceiverMarker(receiver) {
30453072 }
30463073}
30473074
3075+ function updateChase ( r ) {
3076+ if ( ! r ) return ;
3077+
3078+ var response = { } ;
3079+ response . positions = { } ;
3080+ var dataTemp = [ ] ;
3081+
3082+ for ( var i in r ) {
3083+ if ( r . hasOwnProperty ( i ) ) {
3084+ for ( var s in r [ i ] ) {
3085+ if ( r [ i ] . hasOwnProperty ( s ) ) {
3086+ last = r [ i ] [ s ]
3087+ if ( last . mobile == true ) {
3088+ var dataTempEntry = { } ;
3089+ dataTempEntry . callsign = last . uploader_callsign ;
3090+ dataTempEntry . gps_alt = last . uploader_position [ 2 ] ;
3091+ dataTempEntry . gps_lat = last . uploader_position [ 0 ] ;
3092+ dataTempEntry . gps_lon = last . uploader_position [ 1 ] ;
3093+ var time = new Date ( last . ts ) . toISOString ( ) ;
3094+ dataTempEntry . gps_time = time ;
3095+ dataTempEntry . server_time = time ;
3096+ dataTempEntry . vehicle = last . uploader_callsign + "_chase" ;
3097+ dataTempEntry . position_id = last . uploader_callsign + "-" + time ;
3098+ dataTemp . push ( dataTempEntry ) ;
3099+ }
3100+ }
3101+ }
3102+ }
3103+ }
3104+ response . positions . position = dataTemp ;
3105+ response . fetch_timestamp = Date . now ( ) ;
3106+ if ( response . positions . position . length > 0 ) {
3107+ update ( response ) ;
3108+ }
3109+ }
3110+
30483111function updateReceivers ( r ) {
30493112 if ( ! r ) return ;
30503113 ls_receivers = true ;
0 commit comments