From 6137746aa9accb1eae2e20e390a66d7bb010cd8a Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sun, 17 Nov 2024 21:45:51 +0100 Subject: [PATCH 1/6] Enforce OSD option --- locales/en/messages.json | 6 ++++++ src/js/tabs/firmware_flasher.js | 17 +++++++++++++++++ src/tabs/firmware_flasher.html | 20 ++++++++++++++++---- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/locales/en/messages.json b/locales/en/messages.json index 5436277292..52a0c3a0b2 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -7409,6 +7409,9 @@ "firmwareFlasherBuildMotorProtocols": { "message": "Motor Protocol" }, + "firmwareFlasherBuildOsdProtocols": { + "message": "OSD Protocol" + }, "firmwareFlasherConfigurationFile": { "message": "Configuration Filename:" }, @@ -7427,6 +7430,9 @@ "firmwareFlasherMotorProtocolDescription": { "message": "Select the motor (ESC) protocol you would like included in this build. Note this is a drop down, but only one item may be selected." }, + "firmwareFlasherOsdProtocolDescription": { + "message": "Select the OSD protocol you would like included in this build. Note this is a drop down, but only one item may be selected." + }, "firmwareFlasherBranchDescription": { "message": "Especially useful for developers, you can select a merged PR, specify a commit sha, or specify a 'yet to be merged' PR by typing in a # followed by the PR number e.g. #1234 (this is shorthand for the branch 'pull/1234/head')." }, diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 85a21e791c..ddae146271 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -220,8 +220,19 @@ firmware_flasher.initialize = function (callback) { return; } + data.osdProtocols = [ + { name: 'None', value: 'No OSD' }, + { name: 'Analog', value: 'USE_OSD_SD' }, + { name: 'Digital', value: 'USE_OSD_HD' }, + { name: 'FrSky', value: 'USE_FRSKYOSD' }, + ]; + + // remove osdProtocols from generalOptions + data.generalOptions = data.generalOptions.filter(option => option.value !== 'USE_FRSKYOSD' && option.value !== 'USE_OSD_SD' && option.value !== 'USE_OSD_HD'); + buildOptionsList($('select[name="radioProtocols"]'), data.radioProtocols); buildOptionsList($('select[name="telemetryProtocols"]'), data.telemetryProtocols); + buildOptionsList($('select[name="osdProtocols"]'), data.osdProtocols); buildOptionsList($('select[name="options"]'), data.generalOptions); buildOptionsList($('select[name="motorProtocols"]'), data.motorProtocols); @@ -440,6 +451,7 @@ firmware_flasher.initialize = function (callback) { } $('select[name="board"]').select2(); + $('select[name="osdProtocols"]').select2(); $('select[name="radioProtocols"]').select2(); $('select[name="telemetryProtocols"]').select2(); $('select[name="motorProtocols"]').select2(); @@ -522,6 +534,7 @@ firmware_flasher.initialize = function (callback) { 'select[name="board"]', 'select[name="radioProtocols"]', 'select[name="telemetryProtocols"]', + 'select[name="osdProtocols"]', 'select[name="motorProtocols"]', 'select[name="options"]', 'select[name="commits"]', @@ -837,6 +850,10 @@ firmware_flasher.initialize = function (callback) { request.options.push($(this).val()); }); + $('select[name="osdProtocols"] option:selected').each(function () { + request.options.push($(this).val()); + }); + $('select[name="motorProtocols"] option:selected').each(function () { request.options.push($(this).val()); }); diff --git a/src/tabs/firmware_flasher.html b/src/tabs/firmware_flasher.html index db608481b8..a2bb7bc57e 100644 --- a/src/tabs/firmware_flasher.html +++ b/src/tabs/firmware_flasher.html @@ -172,11 +172,11 @@
- -
- -
+
@@ -189,6 +189,18 @@
+
+
+
+ +
+ +
+
+
+
+
From 15916a81b98e70668890b84f878bbc00a4a7e61b Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Sun, 17 Nov 2024 22:30:09 +0100 Subject: [PATCH 2/6] Add default selection when using auto detect --- src/js/tabs/firmware_flasher.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index ddae146271..7a9c843eba 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -227,6 +227,13 @@ firmware_flasher.initialize = function (callback) { { name: 'FrSky', value: 'USE_FRSKYOSD' }, ]; + // pre select osd option when found in general options after auto detect + if (self.cloudBuildOptions) { + data.osdProtocols.forEach((option) => { + option.default = self.cloudBuildOptions.includes(option.value); + }); + } + // remove osdProtocols from generalOptions data.generalOptions = data.generalOptions.filter(option => option.value !== 'USE_FRSKYOSD' && option.value !== 'USE_OSD_SD' && option.value !== 'USE_OSD_HD'); From 0be569495066bb55d3ab0166e575cd6dcf226fc2 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 18 Nov 2024 00:16:12 +0100 Subject: [PATCH 3/6] Fix no osd selection build --- src/js/tabs/firmware_flasher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 7a9c843eba..7488f46c0b 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -221,7 +221,7 @@ firmware_flasher.initialize = function (callback) { } data.osdProtocols = [ - { name: 'None', value: 'No OSD' }, + { name: 'None', value: '' }, { name: 'Analog', value: 'USE_OSD_SD' }, { name: 'Digital', value: 'USE_OSD_HD' }, { name: 'FrSky', value: 'USE_FRSKYOSD' }, From a12615ebfc83266fe79270f70867d4108b16bed8 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 18 Nov 2024 12:48:18 +0100 Subject: [PATCH 4/6] Update from blckmn --- src/js/tabs/firmware_flasher.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 7488f46c0b..4be6f41bcf 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -220,13 +220,10 @@ firmware_flasher.initialize = function (callback) { return; } - data.osdProtocols = [ - { name: 'None', value: '' }, - { name: 'Analog', value: 'USE_OSD_SD' }, - { name: 'Digital', value: 'USE_OSD_HD' }, - { name: 'FrSky', value: 'USE_FRSKYOSD' }, - ]; - + // extract osd protocols from general options and add to osdProtocols + data.osdProtocols = data.generalOptions.filter(option => option.group === 'OSD'); + // add None option to osdProtocols as first option + data.osdProtocols.unshift({name: 'None', value: ''}); // pre select osd option when found in general options after auto detect if (self.cloudBuildOptions) { data.osdProtocols.forEach((option) => { @@ -235,7 +232,7 @@ firmware_flasher.initialize = function (callback) { } // remove osdProtocols from generalOptions - data.generalOptions = data.generalOptions.filter(option => option.value !== 'USE_FRSKYOSD' && option.value !== 'USE_OSD_SD' && option.value !== 'USE_OSD_HD'); + data.generalOptions = data.generalOptions.filter(option => !option.group); buildOptionsList($('select[name="radioProtocols"]'), data.radioProtocols); buildOptionsList($('select[name="telemetryProtocols"]'), data.telemetryProtocols); From c3fad23ceb67bdb6ca23cec47bb6c640b0f2e1d8 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 18 Nov 2024 14:51:26 +0100 Subject: [PATCH 5/6] Use groupedName and refactor --- src/js/tabs/firmware_flasher.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 4be6f41bcf..8fc9d0550c 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -221,15 +221,16 @@ firmware_flasher.initialize = function (callback) { } // extract osd protocols from general options and add to osdProtocols - data.osdProtocols = data.generalOptions.filter(option => option.group === 'OSD'); + data.osdProtocols = data.generalOptions + .filter(option => option.group === 'OSD') + .map(option => { + option.name = option.groupedName; + option.default = self.cloudBuildOptions.includes(option.value); + return option; + }); + // add None option to osdProtocols as first option data.osdProtocols.unshift({name: 'None', value: ''}); - // pre select osd option when found in general options after auto detect - if (self.cloudBuildOptions) { - data.osdProtocols.forEach((option) => { - option.default = self.cloudBuildOptions.includes(option.value); - }); - } // remove osdProtocols from generalOptions data.generalOptions = data.generalOptions.filter(option => !option.group); From 0f54217ea92bdd0beb3c483439f6f4bbb8ddf256 Mon Sep 17 00:00:00 2001 From: Mark Haslinghuis Date: Mon, 18 Nov 2024 15:06:08 +0100 Subject: [PATCH 6/6] fix null cloudbuildOptions --- src/js/tabs/firmware_flasher.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js index 8fc9d0550c..5970fbb69a 100644 --- a/src/js/tabs/firmware_flasher.js +++ b/src/js/tabs/firmware_flasher.js @@ -225,7 +225,7 @@ firmware_flasher.initialize = function (callback) { .filter(option => option.group === 'OSD') .map(option => { option.name = option.groupedName; - option.default = self.cloudBuildOptions.includes(option.value); + option.default = self.cloudBuildOptions?.includes(option.value); return option; });