@@ -94,8 +94,6 @@ failsafe.initialize = function (callback) {
94
94
// generate labels for assigned aux modes
95
95
const auxAssignment = [ ] ;
96
96
97
- let element ;
98
-
99
97
for ( let channelIndex = 0 ; channelIndex < FC . RC . active_channels - 4 ; channelIndex ++ ) {
100
98
auxAssignment . push ( "" ) ;
101
99
}
@@ -104,6 +102,7 @@ failsafe.initialize = function (callback) {
104
102
auxAssignment [ FC . RSSI_CONFIG . channel - 5 ] += "<span class=\"modename\">" + "RSSI" + "</span>" ; // Aux channels start at 5 in backend so we have to substract 5
105
103
}
106
104
105
+ let hasGpsRescueAsMode = false ;
107
106
for ( let modeIndex = 0 ; modeIndex < FC . AUX_CONFIG . length ; modeIndex ++ ) {
108
107
109
108
const modeId = FC . AUX_CONFIG_IDS [ modeIndex ] ;
@@ -123,6 +122,10 @@ failsafe.initialize = function (callback) {
123
122
124
123
// Search for the real name if it belongs to a peripheral
125
124
let modeName = FC . AUX_CONFIG [ modeIndex ] ;
125
+ // Check if GPS Rescue is enabled as a mode
126
+ if ( ! hasGpsRescueAsMode && modeName === "GPS RESCUE" ) {
127
+ hasGpsRescueAsMode = true ;
128
+ }
126
129
modeName = adjustBoxNameIfPeripheralWithModeID ( modeId , modeName ) ;
127
130
128
131
auxAssignment [ modeRange . auxChannelIndex ] += `<span class="modename">${ modeName } </span>` ;
@@ -232,28 +235,34 @@ failsafe.initialize = function (callback) {
232
235
$ ( 'input[name="failsafe_delay"]' ) . val ( ( FC . FAILSAFE_CONFIG . failsafe_delay / 10.0 ) . toFixed ( 1 ) ) ;
233
236
234
237
// set stage 2 failsafe procedure
235
- $ ( 'input[type="radio"].procedure' ) . change ( function ( ) {
238
+ const rescueSettings = $ ( 'input[id="gps_rescue"]' ) . parent ( ) . parent ( ) . find ( ':input' ) ;
239
+ $ ( 'input[type="radio"].procedure' ) . on ( "change" , function ( ) {
236
240
// Disable all the settings
237
- $ ( '.proceduresettings :input' ) . attr ( 'disabled' , true ) ;
241
+ $ ( '.proceduresettings :input' ) . attr ( 'disabled' , true ) ;
238
242
// Enable only selected
239
- $ ( this ) . parent ( ) . parent ( ) . find ( ':input' ) . attr ( 'disabled' , false ) ;
243
+ $ ( this ) . parent ( ) . parent ( ) . find ( ':input' ) . attr ( 'disabled' , false ) ;
244
+ // Also enable GPS Rescue if configured as a mode
245
+ if ( hasGpsRescueAsMode ) {
246
+ rescueSettings . attr ( 'disabled' , false ) ;
247
+ }
240
248
} ) ;
241
249
250
+ let radio ;
242
251
switch ( FC . FAILSAFE_CONFIG . failsafe_procedure ) {
243
252
case 0 :
244
- element = $ ( 'input[id="land"]' ) ;
245
- element . prop ( 'checked' , true ) ;
246
- element . change ( ) ;
253
+ radio = $ ( 'input[id="land"]' ) ;
254
+ radio . prop ( 'checked' , true ) ;
255
+ radio . trigger ( "change" ) ;
247
256
break ;
248
257
case 1 :
249
- element = $ ( 'input[id="drop"]' ) ;
250
- element . prop ( 'checked' , true ) ;
251
- element . change ( ) ;
258
+ radio = $ ( 'input[id="drop"]' ) ;
259
+ radio . prop ( 'checked' , true ) ;
260
+ radio . trigger ( "change" ) ;
252
261
break ;
253
262
case 2 :
254
- element = $ ( 'input[id="gps_rescue"]' ) ;
255
- element . prop ( 'checked' , true ) ;
256
- element . change ( ) ;
263
+ radio = $ ( 'input[id="gps_rescue"]' ) ;
264
+ radio . prop ( 'checked' , true ) ;
265
+ radio . trigger ( "change" ) ;
257
266
break ;
258
267
}
259
268
0 commit comments