diff --git a/locales/en/messages.json b/locales/en/messages.json index cc3710eb..50f78258 100644 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -6099,6 +6099,10 @@ "message": "Save", "description": "Save button in the VTX tab" }, + "vtxButtonSaving": { + "message": "Saving", + "description": "Show state of the Save button in the VTX tab" + }, "vtxButtonSaved": { "message": "Saved", "description": "Saved action button in the VTX tab" diff --git a/src/js/tabs/vtx.js b/src/js/tabs/vtx.js index 69bd76d0..29f87ddb 100644 --- a/src/js/tabs/vtx.js +++ b/src/js/tabs/vtx.js @@ -885,13 +885,21 @@ vtx.initialize = function (callback) { TABS.vtx.vtxTableSavePending = false; - const oldText = $("#save_button").text(); - $("#save_button").html(i18n.getMessage('vtxButtonSaved')); - setTimeout(function () { - $("#save_button").html(oldText); - }, 2000); + const saveButton = $("#save_button"); + const oldText = saveButton.text(); + const buttonDelay = 2000; - TABS.vtx.initialize(); + saveButton.html(i18n.getMessage('vtxButtonSaving')).addClass('disabled'); + + // Allow firmware to make relevant changes before initialization + setTimeout(() => { + saveButton.html(i18n.getMessage('vtxButtonSaved')); + + setTimeout(() => { + TABS.vtx.initialize(); + saveButton.html(oldText).removeClass('disabled'); + }, buttonDelay); + }, buttonDelay); } }