Skip to content

Commit 05bcac8

Browse files
committed
Replace multiple select in onboard logging
1 parent 4995078 commit 05bcac8

File tree

3 files changed

+43
-16
lines changed

3 files changed

+43
-16
lines changed

locales/en/messages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7218,7 +7218,7 @@
72187218
"message": "Blackbox logging rate"
72197219
},
72207220
"onboardLoggingDebugFields": {
7221-
"message": "Data included"
7221+
"message": "Debug Fields included"
72227222
},
72237223
"onboardLoggingDebugMode": {
72247224
"message": "Blackbox debug mode"

src/js/tabs/onboard_logging.js

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

src/tabs/onboard_logging.html

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,15 @@
3232
</select>
3333
<span class="blackboxDebugModeText" i18n="onboardLoggingDebugMode"></span>
3434
</div>
35-
<div class="line blackboxDebugFields">
36-
<select name="blackboxDebugFields" multiple="multiple"></select>
37-
<span i18n="onboardLoggingDebugFields"></span>
35+
<div class="gui_box grey">
36+
<div class="gui_box_titlebar" align="left">
37+
<div class="spacer_box_title" i18n="onboardLoggingDebugFields"></div>
38+
</div>
39+
<table>
40+
<tbody class="blackboxDebugFieldsTable" id="noline">
41+
<!-- table generated here -->
42+
</tbody>
43+
</table>
3844
</div>
3945
<div class="line">
4046
<a href="#" class="save-settings regular-button" i18n="blackboxButtonSave"></a>

0 commit comments

Comments
 (0)