1
0
Fork 0
mirror of https://github.com/betaflight/betaflight-configurator.git synced 2025-07-26 09:45:28 +03:00

Expose [local] firmware build options (#3931)

Fix options and expost local options
This commit is contained in:
Mark Haslinghuis 2024-05-03 20:40:06 +02:00 committed by GitHub
parent 03234eb36b
commit 0f96175655
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 75 additions and 41 deletions

View file

@ -9,7 +9,7 @@ import FC from '../fc';
import MSP from '../msp';
import Model from '../model';
import MSPCodes from '../msp/MSPCodes';
import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_46 } from '../data_storage';
import CONFIGURATOR, { API_VERSION_1_42, API_VERSION_1_43, API_VERSION_1_45, API_VERSION_1_46 } from '../data_storage';
import { gui_log } from '../gui_log';
import $ from 'jquery';
@ -223,7 +223,9 @@ setup.initialize = function (callback) {
// Firmware info
msp_api_e = $('.api-version'),
build_date_e = $('.build-date'),
build_info_e = $('.build-info');
build_type_e = $('.build-type'),
build_info_e = $('.build-info'),
build_options_e = $('.build-options');
// DISARM FLAGS
// We add all the arming/disarming flags available, and show/hide them if needed.
@ -445,50 +447,62 @@ setup.initialize = function (callback) {
}
}
const showFirmwareInfo = function() {
// Firmware info
msp_api_e.text([FC.CONFIG.apiVersion]);
build_date_e.text([FC.CONFIG.buildInfo]);
const showBuildInfo = function() {
const supported = FC.CONFIG.buildKey.length === 32;
if (navigator.onLine) {
let buildOptionList = "";
if (FC.CONFIG.buildOptions.length) {
buildOptionList = `<div class="dialogBuildInfoGrid-container">`;
for (const buildOptionElement of FC.CONFIG.buildOptions) {
buildOptionList += `<div class="dialogBuildInfoGrid-item">${buildOptionElement}</div>`;
}
buildOptionList += `</div>`;
build_info_e.html(`<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildOptions')}">
<a class="buildOptions" href=#"><strong>${i18n.getMessage('initialSetupInfoBuildOptionList')}</strong></a></span>`);
}
if (FC.CONFIG.buildKey.length === 32) {
const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`;
const buildConfig = `<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildConfig')}: ${buildRoot}/json">
<a href="${buildRoot}/json" target="_blank"><strong>${i18n.getMessage('initialSetupInfoBuildConfig')}</strong></a></span>`;
const buildLog = `<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildLog')}: ${buildRoot}/log">
<a href="${buildRoot}/log" target="_blank"><strong>${i18n.getMessage('initialSetupInfoBuildLog')}</strong></a></span>`;
const buildOptions = `<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildOptionList')}">
<a class="buildOptions disabled" href=#"><strong>${i18n.getMessage('initialSetupInfoBuildOptions')}</strong></a></span>`;
build_info_e.html(`${buildConfig} ${buildLog} ${buildOptions}`);
$('a.buildOptions').on('click', async function() {
showDialogBuildInfo(`<h3>${i18n.getMessage('initialSetupInfoBuildOptionList')}</h3>`, buildOptionList);
});
$('.build-info a').removeClass('disabled');
} else {
build_info_e.html(i18n.getMessage('initialSetupInfoBuildEmpty'));
$('.build-info a').addClass('disabled');
}
if (supported && navigator.onLine) {
const buildRoot = `https://build.betaflight.com/api/builds/${FC.CONFIG.buildKey}`;
const buildConfig = `<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildConfig')}: ${buildRoot}/json">
<a href="${buildRoot}/json" target="_blank"><strong>${i18n.getMessage('initialSetupInfoBuildConfig')}</strong></a></span>`;
const buildLog = `<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildLog')}: ${buildRoot}/log">
<a href="${buildRoot}/log" target="_blank"><strong>${i18n.getMessage('initialSetupInfoBuildLog')}</strong></a></span>`;
build_info_e.html(`<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildOptions')}">
<a class="buildOptions" href=#"><strong>${i18n.getMessage('initialSetupInfoBuildOptionList')}</strong></a></span>`);
build_info_e.html(`${buildConfig} ${buildLog}`);
} else {
build_info_e.html(i18n.getMessage('initialSetupNotOnline'));
$('.build-info a').addClass('disabled');
build_info_e.html(supported ? i18n.getMessage('initialSetupNotOnline') : i18n.getMessage('initialSetupNoBuildInfo'));
}
};
const showBuildOptions = function() {
const supported = (semver.eq(FC.CONFIG.apiVersion, API_VERSION_1_45) && navigator.onLine || semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_46)) && FC.CONFIG.buildOptions.length;
if (supported) {
let buildOptionList = `<div class="dialogBuildInfoGrid-container">`;
for (const buildOptionElement of FC.CONFIG.buildOptions) {
buildOptionList += `<div class="dialogBuildInfoGrid-item">${buildOptionElement}</div>`;
}
buildOptionList += `</div>`;
build_options_e.html(`<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildOptions')}">
<a class="buildOptions" href=#"><strong>${i18n.getMessage('initialSetupInfoBuildOptionList')}</strong></a></span>`);
const buildOptions = `<span class="buildInfoBtn" title="${i18n.getMessage('initialSetupInfoBuildOptionList')}">
<a class="buildOptions" href=#"><strong>${i18n.getMessage('initialSetupInfoBuildOptions')}</strong></a></span>`;
build_options_e.html(buildOptions);
$('a.buildOptions').on('click', async function() {
showDialogBuildInfo(`<h3>${i18n.getMessage('initialSetupInfoBuildOptionList')}</h3>`, buildOptionList);
});
} else {
// should not happen, but just in case
build_options_e.html(`${i18n.getMessage('initialSetupNoBuildInfo')}`);
}
};
function showFirmwareInfo() {
// Firmware info
msp_api_e.text(FC.CONFIG.apiVersion);
build_date_e.text(FC.CONFIG.buildInfo);
if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_45)) {
build_type_e.html(FC.CONFIG.buildKey.length === 32 ? i18n.getMessage("initialSetupInfoBuildCloud") : i18n.getMessage("initialSetupInfoBuildLocal"));
showBuildInfo();
showBuildOptions();
}
}
prepareDisarmFlags();
showSensorInfo();
showFirmwareInfo();