diff --git a/locales/en/messages.json b/locales/en/messages.json index cfe9785500..304026f496 100755 --- a/locales/en/messages.json +++ b/locales/en/messages.json @@ -1183,6 +1183,12 @@ "initialSetupInfoBuildConfig": { "message": "Config" }, + "initialSetupInfoBuildDownload": { + "message": "Download" + }, + "initialSetupInfoBuildFirmware": { + "message": "Firmware:" + }, "initialSetupInfoBuildLog": { "message": "Log" }, @@ -1196,7 +1202,7 @@ "message": "Local Build - no Cloud information" }, "initialSetupInfoBuildType": { - "message": "Build type" + "message": "Build type:" }, "initialSetupInfoBuildLocal": { "message": "Local Build" diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index c6e73e923d..4ded4201ab 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -212,7 +212,7 @@ setup.initialize = function (callback) { build_date_e = $(".build-date"), build_type_e = $(".build-type"), build_info_e = $(".build-info"), - build_options_e = $(".build-options"); + build_firmware_e = $(".build-firmware"); // DISARM FLAGS // We add all the arming/disarming flags available, and show/hide them if needed. @@ -364,80 +364,104 @@ setup.initialize = function (callback) { } } + // Gets the build root base URI for build.betaflight.com + const getBuildRootBaseUri = function () { + return `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`; + }; + + // Fills in the "Build info" part of the "Firmware info" box const showBuildInfo = function () { - const supported = FC.CONFIG.buildKey.length === 32; + const isIspConnected = ispConnected(); + const buildKeyValid = FC.CONFIG.buildKey.length === 32; - if (supported && ispConnected()) { - const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`; + if (buildKeyValid && isIspConnected) { + const buildRoot = getBuildRootBaseUri(); + + // Creates the "Config" button const buildConfig = ` - ${i18n.getMessage( + ${i18n.getMessage( "initialSetupInfoBuildConfig", )}`; + + // Creates the "Log" button const buildLog = ` - ${i18n.getMessage( + ${i18n.getMessage( "initialSetupInfoBuildLog", )}`; - build_info_e.html(` - ${i18n.getMessage( - "initialSetupInfoBuildOptionList", - )}`); + + // Shows the "Config" and "Log" buttons build_info_e.html(`${buildConfig} ${buildLog}`); } else { build_info_e.html( - supported ? i18n.getMessage("initialSetupNotOnline") : i18n.getMessage("initialSetupNoBuildInfo"), + isIspConnected + ? i18n.getMessage("initialSetupNoBuildInfo") + : i18n.getMessage("initialSetupNotOnline"), ); } }; - const showBuildOptions = function () { - const supported = - ((semver.eq(FC.CONFIG.apiVersion, API_VERSION_1_45) && ispConnected()) || + // Fills in the "Firmware" part of the "Firmware info" box + const showBuildFirmware = function () { + const isIspConnected = ispConnected(); + const buildOptionsValid = + ((semver.eq(FC.CONFIG.apiVersion, API_VERSION_1_45) && isIspConnected) || semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) && FC.CONFIG.buildOptions.length; - - if (supported) { - let buildOptionList = `
`; - for (const buildOptionElement of FC.CONFIG.buildOptions) { - buildOptionList += `
${buildOptionElement}
`; - } - buildOptionList += `
`; - - build_options_e.html(` - ${i18n.getMessage( - "initialSetupInfoBuildOptionList", - )}`); - - const buildOptions = ` - ${i18n.getMessage( + const buildKeyValid = FC.CONFIG.buildKey.length === 32; + const buildRoot = getBuildRootBaseUri(); + + if (buildOptionsValid || buildKeyValid) { + // Creates the "Options" button (if possible) + const buildOptions = buildOptionsValid + ? ` + ${i18n.getMessage( "initialSetupInfoBuildOptions", - )}`; - - build_options_e.html(buildOptions); + )}` + : ""; + + // Creates the "Download" button (if possible) + const buildDownload = buildKeyValid + ? ` + ${i18n.getMessage( + "initialSetupInfoBuildDownload", +)}` + : ""; + + // Shows the "Options" and/or "Download" buttons + build_firmware_e.html(`${buildOptions} ${buildDownload}`); + + if (buildOptionsValid) { + // Creates and attaches the "Options" dialog + let buildOptionList = `
`; + for (const buildOptionElement of FC.CONFIG.buildOptions) { + buildOptionList += `
${buildOptionElement}
`; + } + buildOptionList += `
`; - $("a.buildOptions").on("click", async function () { - showDialogBuildInfo( - `

${i18n.getMessage("initialSetupInfoBuildOptionList")}

`, - buildOptionList, - ); - }); + $("a.buildOptions").on("click", async function () { + showDialogBuildInfo( + `

${i18n.getMessage("initialSetupInfoBuildOptionList")}

`, + buildOptionList, + ); + }); + } } else { - // should not happen, but just in case - build_options_e.html(`${i18n.getMessage("initialSetupNoBuildInfo")}`); + build_firmware_e.html( + isIspConnected + ? i18n.getMessage("initialSetupNoBuildInfo") + : i18n.getMessage("initialSetupNotOnline"), + ); } }; + // Fills in the "Firmware info" box function showFirmwareInfo() { - // Firmware info msp_api_e.text(FC.CONFIG.apiVersion); build_date_e.text(FC.CONFIG.buildInfo); @@ -448,7 +472,7 @@ setup.initialize = function (callback) { : i18n.getMessage("initialSetupInfoBuildLocal"), ); showBuildInfo(); - showBuildOptions(); + showBuildFirmware(); } } diff --git a/src/tabs/setup.html b/src/tabs/setup.html index 2c24afbea1..b4c001ed9d 100644 --- a/src/tabs/setup.html +++ b/src/tabs/setup.html @@ -226,7 +226,7 @@ - + @@ -234,14 +234,13 @@ - - + - - + +