@@ -114,15 +114,6 @@ onboard_logging.initialize = function (callback) {
114114
115115 if ( FC . BLACKBOX . supported ) {
116116 $ ( ".tab-onboard_logging a.save-settings" ) . on ( "click" , async function ( ) {
117- if ( semver . gte ( FC . CONFIG . apiVersion , API_VERSION_1_45 ) ) {
118- let fieldsMask = 0 ;
119-
120- $ ( ".blackboxDebugFields select option:not(:selected)" ) . each ( function ( ) {
121- fieldsMask |= 1 << $ ( this ) . val ( ) ;
122- } ) ;
123-
124- FC . BLACKBOX . blackboxDisabledMask = fieldsMask ;
125- }
126117 FC . BLACKBOX . blackboxSampleRate = parseInt ( loggingRatesSelect . val ( ) , 10 ) ;
127118 FC . BLACKBOX . blackboxPDenom = parseInt ( loggingRatesSelect . val ( ) , 10 ) ;
128119 FC . BLACKBOX . blackboxDevice = parseInt ( deviceSelect . val ( ) , 10 ) ;
@@ -239,6 +230,38 @@ onboard_logging.initialize = function (callback) {
239230 debugModeSelect . val ( FC . PID_ADVANCED_CONFIG . debugMode ) . select2 ( ) . sortSelect ( "NONE" ) ;
240231 }
241232
233+ function createDebugTableRow ( i , enabled ) {
234+ const row = $ ( "<tr></tr>" ) ;
235+ const checkboxCell = $ ( "<td></td>" ) ;
236+ const labelCell = $ ( "<td></td>" ) ;
237+
238+ const checkbox = $ (
239+ `<input type="checkbox" class="toggle" name="blackboxDebugField${ i } " value="${ i } " ${ enabled ? "checked" : "" } >` ,
240+ ) ;
241+ checkboxCell . append ( checkbox ) ;
242+ checkboxCell . css ( "width" , "40px" ) ;
243+ row . append ( checkboxCell ) ;
244+
245+ const label = $ ( `<label for="blackboxDebugField${ i } ">${ DEBUG . enableFields [ i ] } </label>` ) ;
246+ labelCell . append ( label ) ;
247+ row . append ( labelCell ) ;
248+
249+ $ ( ".blackboxDebugFieldsTable" ) . append ( row ) ;
250+
251+ // Initialize the enable checkbox
252+ checkboxCell . find ( "input" ) . prop ( "checked" , ( FC . BLACKBOX . blackboxDisabledMask & ( 1 << i ) ) === 0 ) ;
253+
254+ // Add handler for enable/disable checkbox
255+ checkboxCell . find ( "input" ) . on ( "change" , function ( ) {
256+ const checked = $ ( this ) . is ( ":checked" ) ;
257+ if ( checked ) {
258+ FC . BLACKBOX . blackboxDisabledMask &= ~ ( 1 << i ) ;
259+ } else {
260+ FC . BLACKBOX . blackboxDisabledMask |= 1 << i ;
261+ }
262+ } ) ;
263+ }
264+
242265 function populateDebugFields ( debugFieldsSelect ) {
243266 if ( semver . gte ( FC . CONFIG . apiVersion , API_VERSION_1_45 ) ) {
244267 $ ( ".blackboxDebugFields" ) . show ( ) ;
@@ -247,10 +270,8 @@ onboard_logging.initialize = function (callback) {
247270
248271 for ( let i = 0 ; i < DEBUG . enableFields . length ; i ++ ) {
249272 const enabled = ( fieldsMask & ( 1 << i ) ) === 0 ;
250- debugFieldsSelect . append ( new Option ( DEBUG . enableFields [ i ] , i , false , enabled ) ) ;
273+ createDebugTableRow ( i , enabled ) ;
251274 }
252-
253- debugFieldsSelect . sortSelect ( ) . multipleSelect ( ) ;
254275 } else {
255276 $ ( ".blackboxDebugFields" ) . hide ( ) ;
256277 }
0 commit comments