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:
parent
03234eb36b
commit
0f96175655
3 changed files with 75 additions and 41 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue