Skip to content

Commit a36329c

Browse files
authored
Merge pull request #1337 from mikeller/fix_flashing_lockout
Fixed lockout for flashing local file caused by the releases being loaded.
2 parents 8abfdb7 + 9aa4d8a commit a36329c

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

src/js/tabs/firmware_flasher.js

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
TABS.firmware_flasher = {
44
releases: null,
55
releaseChecker: new ReleaseChecker('firmware', 'https://api.github.com/repos/betaflight/betaflight/releases'),
6-
jenkinsLoader: new JenkinsLoader('https://ci.betaflight.tech')
6+
jenkinsLoader: new JenkinsLoader('https://ci.betaflight.tech'),
7+
localFileLoaded: false,
78
};
89

910
TABS.firmware_flasher.initialize = function (callback) {
@@ -64,7 +65,7 @@ TABS.firmware_flasher.initialize = function (callback) {
6465

6566
$('span.progressLabel').html('<a class="save_firmware" href="#" title="Save Firmware">Loaded Online Firmware: (' + parsed_hex.bytes_total + ' bytes)</a>');
6667

67-
$('a.flash_firmware').removeClass('disabled');
68+
self.enableFlashing(true);
6869

6970
$('div.release_info .target').text(summary.target);
7071
$('div.release_info .name').text(summary.version).prop('href', summary.releaseUrl);
@@ -319,7 +320,10 @@ TABS.firmware_flasher.initialize = function (callback) {
319320
$('span.progressLabel').text(i18n.getMessage('firmwareFlasherLoadFirmwareFile'));
320321
$('div.git_info').slideUp();
321322
$('div.release_info').slideUp();
322-
$('a.flash_firmware').addClass('disabled');
323+
324+
if (!self.localFileLoaded) {
325+
self.enableFlashing(false);
326+
}
323327

324328
var versions_e = $('select[name="firmware_version"]').empty();
325329
if(target == 0) {
@@ -352,6 +356,9 @@ TABS.firmware_flasher.initialize = function (callback) {
352356

353357
// UI Hooks
354358
$('a.load_file').click(function () {
359+
self.enableFlashing(false);
360+
self.localFileLoaded = true;
361+
355362
analytics.setFirmwareData(analytics.DATA.FIRMWARE_CHANNEL, undefined);
356363
analytics.setFirmwareData(analytics.DATA.FIRMWARE_SOURCE, 'file');
357364

@@ -394,7 +401,7 @@ TABS.firmware_flasher.initialize = function (callback) {
394401
if (parsed_hex) {
395402
analytics.setFirmwareData(analytics.DATA.FIRMWARE_SIZE, parsed_hex.bytes_total);
396403

397-
$('a.flash_firmware').removeClass('disabled');
404+
self.enableFlashing(true);
398405

399406
$('span.progressLabel').text(i18n.getMessage('firmwareFlasherFirmwareLocalLoaded', parsed_hex.bytes_total));
400407
} else {
@@ -415,7 +422,11 @@ TABS.firmware_flasher.initialize = function (callback) {
415422
*/
416423
$('select[name="firmware_version"]').change(function(evt){
417424
$('div.release_info').slideUp();
418-
$('a.flash_firmware').addClass('disabled');
425+
426+
if (!self.localFileLoaded) {
427+
self.enableFlashing(false);
428+
}
429+
419430
let release = $("option:selected", evt.target).data("summary");
420431
let isCached = FirmwareCache.has(release);
421432
if (evt.target.value=="0" || isCached) {
@@ -436,6 +447,9 @@ TABS.firmware_flasher.initialize = function (callback) {
436447
});
437448

438449
$('a.load_remote_file').click(function (evt) {
450+
self.enableFlashing(false);
451+
self.localFileLoaded = false;
452+
439453
analytics.setFirmwareData(analytics.DATA.FIRMWARE_SOURCE, 'http');
440454

441455
if ($('select[name="firmware_version"]').val() == "0") {
@@ -445,7 +459,6 @@ TABS.firmware_flasher.initialize = function (callback) {
445459

446460
function failed_to_load() {
447461
$('span.progressLabel').text(i18n.getMessage('firmwareFlasherFailedToLoadOnlineFirmware'));
448-
$('a.flash_firmware').addClass('disabled');
449462
$("a.load_remote_file").removeClass('disabled');
450463
$("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonLoadOnline'));
451464
}
@@ -691,3 +704,13 @@ TABS.firmware_flasher.cleanup = function (callback) {
691704

692705
if (callback) callback();
693706
};
707+
708+
TABS.firmware_flasher.enableFlashing = function (enabled) {
709+
var self = this;
710+
711+
if (enabled) {
712+
$('a.flash_firmware').removeClass('disabled');
713+
} else {
714+
$('a.flash_firmware').addClass('disabled');
715+
}
716+
}

0 commit comments

Comments
 (0)