Skip to content

Commit

Permalink
Disable buttons
Browse files Browse the repository at this point in the history
  • Loading branch information
haslinghuis committed Nov 4, 2023
1 parent f83c460 commit d362cb2
Showing 1 changed file with 59 additions and 32 deletions.
91 changes: 59 additions & 32 deletions src/js/tabs/firmware_flasher.js
Expand Up @@ -165,7 +165,7 @@ firmware_flasher.initialize = function (callback) {
self.localFirmwareLoaded = false;

processHex(data, key);
$("a.load_remote_file").removeClass('disabled');
self.enableLoadRemoteFile(true);
$("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonLoadOnline'));
}

Expand Down Expand Up @@ -235,11 +235,11 @@ firmware_flasher.initialize = function (callback) {
}

let buildTypesToShow;
const buildType_e = $('select[name="build_type"]');
const buildTypeElement = $('select[name="build_type"]');
function buildBuildTypeOptionsList() {
buildType_e.empty();
buildTypeElement.empty();
buildTypesToShow.forEach(({ tag, title }, index) => {
buildType_e.append($(`<option value='${index}'>${tag ? i18n.getMessage(tag) : title}</option>`));
buildTypeElement.append($(`<option value='${index}'>${tag ? i18n.getMessage(tag) : title}</option>`));
});
}

Expand All @@ -262,7 +262,7 @@ firmware_flasher.initialize = function (callback) {
$('tr.build_type').show();
} else {
$('tr.build_type').hide();
buildType_e.val(0).trigger('change');
buildTypeElement.val(0).trigger('change');
}
}

Expand All @@ -276,7 +276,7 @@ firmware_flasher.initialize = function (callback) {
}

buildBuildTypeOptionsList();
buildType_e.val(0).trigger('change');
buildTypeElement.val(0).trigger('change');

setTimeout(() => {
$('tr.expertOptions').toggle(expertModeChecked);
Expand All @@ -299,11 +299,12 @@ firmware_flasher.initialize = function (callback) {

loadSponsor();

buildType_e.change(function() {
buildTypeElement.on('change', function() {
self.enableLoadRemoteFile(false);

tracking.setFirmwareData(tracking.DATA.FIRMWARE_CHANNEL, $('option:selected', this).text());

$("a.load_remote_file").addClass('disabled');
const build_type = $(this).val();
const build_type = buildTypeElement.val();

$('select[name="board"]').empty()
.append($(`<option value='0'>${i18n.getMessage("firmwareFlasherOptionLoading")}</option>`));
Expand Down Expand Up @@ -369,7 +370,7 @@ firmware_flasher.initialize = function (callback) {
setBoardConfig(response.configuration);
}

$("a.load_remote_file").removeClass('disabled');
self.enableLoadRemoteFile(true);
}

self.releaseLoader.loadTarget(target, release, onTargetDetail);
Expand Down Expand Up @@ -453,7 +454,7 @@ firmware_flasher.initialize = function (callback) {
});

$('select[name="board"]').change(function() {
$("a.load_remote_file").addClass('disabled');
self.enableLoadRemoteFile(false);
let target = $(this).val();

// exception for board flashed with local custom firmware
Expand Down Expand Up @@ -753,7 +754,7 @@ firmware_flasher.initialize = function (callback) {

result = getConfig('selected_build_type');
// ensure default build type is selected
buildType_e.val(result.selected_build_type || 0).trigger('change');
buildTypeElement.val(result.selected_build_type || 0).trigger('change');

result = getConfig('no_reboot_sequence');
if (result.no_reboot_sequence) {
Expand Down Expand Up @@ -896,7 +897,12 @@ firmware_flasher.initialize = function (callback) {
},
);

$('a.load_remote_file').click(function (evt) {
$('a.load_remote_file').on('click', function (evt) {
if (!self.selectedBoard) {
return;
}

self.enableLoadRemoteFile(false);
self.enableFlashing(false);
self.localFirmwareLoaded = false;
self.developmentFirmwareLoaded = buildTypesToShow[$('select[name="build_type"]').val()].tag === 'firmwareFlasherOptionLabelBuildTypeDevelopment';
Expand All @@ -910,7 +916,7 @@ firmware_flasher.initialize = function (callback) {

function onLoadFailed() {
$('span.progressLabel').attr('i18n','firmwareFlasherFailedToLoadOnlineFirmware').removeClass('i18n-replaced');
$("a.load_remote_file").removeClass('disabled');
self.enableLoadRemoteFile(true);
$("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonLoadOnline'));
i18n.localizePage();
}
Expand Down Expand Up @@ -1009,7 +1015,7 @@ firmware_flasher.initialize = function (callback) {
}

updateStatus('Processing', response.key, retries * 10, false);
retries = retries + 1;
retries++;
});
}, 5000);
});
Expand All @@ -1018,7 +1024,7 @@ firmware_flasher.initialize = function (callback) {

if (self.targetDetail) { // undefined while list is loading or while running offline
$("a.load_remote_file").text(i18n.getMessage('firmwareFlasherButtonDownloading'));
$("a.load_remote_file").addClass('disabled');
self.enableLoadRemoteFile(false);

showReleaseNotes(self.targetDetail);

Expand All @@ -1031,9 +1037,10 @@ firmware_flasher.initialize = function (callback) {

const exitDfuElement = $('a.exit_dfu');

exitDfuElement.click(function () {
exitDfuElement.on('click', function () {
if (!exitDfuElement.hasClass('disabled')) {
exitDfuElement.addClass("disabled");
self.enableDfuExitButton(false);

if (!GUI.connect_lock) { // button disabled while flashing is in progress
tracking.sendEvent(tracking.EVENT_CATEGORIES.FLASHING, 'ExitDfu', null);
try {
Expand All @@ -1050,27 +1057,35 @@ firmware_flasher.initialize = function (callback) {
if (GUI.active_tab === 'firmware_flasher') {
if (!GUI.connect_lock) {
if ($('option:selected', this).data().isDFU) {
exitDfuElement.removeClass('disabled');
self.enableDfuExitButton(true);
} else {
// Porthandler resets board on port detect
if (self.boardNeedsVerification) {
// reset to prevent multiple calls
self.boardNeedsVerification = false;
verifyBoard();
}

$("a.load_remote_file").removeClass('disabled');
$("a.load_file").removeClass('disabled');
exitDfuElement.addClass('disabled');
if (self.selectedBoard) {
self.enableLoadRemoteFile(true);
}
self.enableLoadFile(true);
self.enableDfuExitButton(false);
}
}
updateDetectBoardButton();
}
}).trigger('change');

$('a.flash_firmware').click(function () {
$('a.flash_firmware').on('click', function () {
const flashButtonElement = $(this);

if (!flashButtonElement.hasClass('disabled')) {
// disable early to prevent multiple clicks
self.enableFlashing(false);
self.enableDfuExitButton(false);
self.enableLoadRemoteFile(false);
self.enableLoadFile(false);

if (!$(this).hasClass('disabled')) {
function goFlashing() {
if (self.developmentFirmwareLoaded) {
checkShowAcknowledgementDialog();
Expand Down Expand Up @@ -1153,10 +1168,6 @@ firmware_flasher.initialize = function (callback) {
}

function startFlashing() {
exitDfuElement.addClass('disabled');
$('a.flash_firmware').addClass('disabled');
$("a.load_remote_file").addClass('disabled');
$("a.load_file").addClass('disabled');
if (!GUI.connect_lock) { // button disabled while flashing is in progress
if (self.parsed_hex) {
try {
Expand Down Expand Up @@ -1462,14 +1473,30 @@ firmware_flasher.cleanup = function (callback) {
if (callback) callback();
};

firmware_flasher.enableFlashing = function (enabled) {
firmware_flasher.toggleClass = function (element, enabled) {
if (enabled) {
$('a.flash_firmware').removeClass('disabled');
$(element).removeClass('disabled');
} else {
$('a.flash_firmware').addClass('disabled');
$(element).addClass('disabled');
}
};

firmware_flasher.enableFlashing = function (enabled) {
this.toggleClass('a.flash_firmware', enabled);
};

firmware_flasher.enableLoadRemoteFile = function (enabled) {
this.toggleClass('a.load_remote_file', enabled);
};

firmware_flasher.enableLoadFile = function (enabled) {
this.toggleClass('a.load_file', enabled);
};

firmware_flasher.enableDfuExitButton = function (enabled) {
this.toggleClass('a.exit_dfu', enabled);
};

firmware_flasher.refresh = function (callback) {
const self = this;

Expand Down

0 comments on commit d362cb2

Please sign in to comment.