Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/betaflight/betaflight-configurator.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ Blackman <blckmn@users.noreply.github.com>2022-11-06 23:20:42 +0300
committerGitHub <noreply@github.com>2022-11-06 23:20:42 +0300
commite9bd42642d382a301c304c5e791b92acc9df2a02 (patch)
tree469b655334527cf18152725db0f2c8ff3c7523c7
parent9f77e00e1749b05bc6850a11e8fef0883fddb878 (diff)
parent956158ec12a8054d96fbe5a875f4afaa235477ca (diff)
Fixed board selection not sticking (#3068)
-rw-r--r--src/js/tabs/firmware_flasher.js118
1 files changed, 63 insertions, 55 deletions
diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js
index 278cc0f4..03781763 100644
--- a/src/js/tabs/firmware_flasher.js
+++ b/src/js/tabs/firmware_flasher.js
@@ -153,7 +153,7 @@ firmware_flasher.initialize = function (callback) {
result = SessionStorage.get('selected_board');
if (result.selected_board) {
- const selected = targets[result.selected_board];
+ const selected = targets.find(t => t.target === result.selected_board);
$('select[name="board"]').val(selected ? result.selected_board : 0).trigger('change');
}
}
@@ -227,10 +227,13 @@ firmware_flasher.initialize = function (callback) {
}
buildBuildTypeOptionsList();
buildType_e.val(0).trigger('change');
+
+ ConfigStorage.set({'selected_expert_mode': expertModeChecked});
}
const expertMode_e = $('.tab-firmware_flasher input.expert_mode');
- expertMode_e.prop('checked', globalExpertMode_e.is(':checked'));
+ const expertMode = ConfigStorage.get('selected_expert_mode');
+ expertMode_e.prop('checked', expertMode.selected_expert_mode ?? false);
$('input.show_development_releases').change(showOrHideBuildTypes).change();
expertMode_e.change(showOrHideExpertMode).change();
@@ -260,6 +263,55 @@ firmware_flasher.initialize = function (callback) {
ConfigStorage.set({'selected_build_type': build_type});
});
+ function selectFirmware(release) {
+ $('div.build_configuration').slideUp();
+ $('div.release_info').slideUp();
+
+ if (!self.localFirmwareLoaded) {
+ self.enableFlashing(false);
+ self.flashingMessage(i18n.getMessage('firmwareFlasherLoadFirmwareFile'), self.FLASH_MESSAGE_TYPES.NEUTRAL);
+ if (self.parsed_hex && self.parsed_hex.bytes_total) {
+ // Changing the board triggers a version change, so we need only dump it here.
+ console.log('throw out loaded hex');
+ self.intel_hex = undefined;
+ self.parsed_hex = undefined;
+ }
+ }
+
+ const target = $('select[name="board"] option:selected').val();
+
+ function onTargetDetail(summary) {
+ self.summary = summary;
+
+ if (summary.cloudBuild === true) {
+ $('div.build_configuration').slideDown();
+
+ const expertMode = $('.tab-firmware_flasher input.expert_mode').is(':checked');
+ if (!expertMode) {
+ $('div.commitSelection').hide();
+ return;
+ }
+ $('div.commitSelection').show();
+
+ self.releaseLoader.loadCommits(summary.release, (commits) => {
+ const select_e = $('select[name="commits"]');
+ select_e.empty();
+ commits.forEach((commit) => {
+ select_e.append($(`<option value='${commit.sha}'>${commit.message}</option>`));
+ });
+ });
+ }
+
+ if (summary.configuration && !self.isConfigLocal) {
+ setBoardConfig(summary.configuration.join('\n'));
+ }
+
+ $("a.load_remote_file").removeClass('disabled');
+ }
+
+ self.releaseLoader.loadTarget(target, release, onTargetDetail);
+ }
+
function populateReleases(versions_element, target) {
const sortReleases = function (a, b) {
return -semver.compareBuild(a.release, b.release);
@@ -293,8 +345,10 @@ firmware_flasher.initialize = function (callback) {
select_e.data('summary', summary);
versions_element.append(select_e);
});
- // Assume flashing latest, so default to it.
- versions_element.prop("selectedIndex", 1).change();
+
+ // Assume flashing latest, so default to it.
+ versions_element.prop("selectedIndex", 1);
+ selectFirmware(versions_element.val());
}
}
@@ -327,8 +381,7 @@ firmware_flasher.initialize = function (callback) {
SessionStorage.set({'selected_board': target});
}
- TABS.firmware_flasher.selectedBoard = target;
- TABS.firmware_flasher.bareBoard = undefined;
+ self.selectedBoard = target;
console.log('board changed to', target);
self.flashingMessage(i18n.getMessage('firmwareFlasherLoadFirmwareFile'), self.FLASH_MESSAGE_TYPES.NEUTRAL)
@@ -695,55 +748,10 @@ firmware_flasher.initialize = function (callback) {
/**
* Lock / Unlock the firmware download button according to the firmware selection dropdown.
*/
- $('select[name="firmware_version"]').change(function(evt) {
- $('div.build_configuration').slideUp();
- $('div.release_info').slideUp();
-
- if (!self.localFirmwareLoaded) {
- self.enableFlashing(false);
- self.flashingMessage(i18n.getMessage('firmwareFlasherLoadFirmwareFile'), self.FLASH_MESSAGE_TYPES.NEUTRAL);
- if (self.parsed_hex && self.parsed_hex.bytes_total) {
- // Changing the board triggers a version change, so we need only dump it here.
- console.log('throw out loaded hex');
- self.intel_hex = undefined;
- self.parsed_hex = undefined;
- }
- }
-
- const release = $("option:selected", evt.target).val();
- const target = $('select[name="board"] option:selected').val();
-
- function onTargetDetail(summary) {
- self.summary = summary;
-
- if (summary.cloudBuild === true) {
- $('div.build_configuration').slideDown();
-
- const expertMode = $('.tab-firmware_flasher input.expert_mode').is(':checked');
- if (!expertMode) {
- $('div.commitSelection').hide();
- return;
- }
- $('div.commitSelection').show();
-
- self.releaseLoader.loadCommits(summary.release, (commits) => {
- const select_e = $('select[name="commits"]');
- select_e.empty();
- commits.forEach((commit) => {
- select_e.append($(`<option value='${commit.sha}'>${commit.message}</option>`));
- });
- });
- }
-
- if (summary.configuration && !self.isConfigLocal) {
- setBoardConfig(summary.configuration.join('\n'));
- }
-
- $("a.load_remote_file").removeClass('disabled');
- }
-
- self.releaseLoader.loadTarget(target, release, onTargetDetail);
- });
+ $('select[name="firmware_version"]').change((evt) => {
+ selectFirmware($("option:selected", evt.target).val());
+ },
+ );
$('a.load_remote_file').click(function (evt) {
self.enableFlashing(false);