diff --git a/src/js/tabs/firmware_flasher.js b/src/js/tabs/firmware_flasher.js
index 4afc10e7..0494cdcf 100644
--- a/src/js/tabs/firmware_flasher.js
+++ b/src/js/tabs/firmware_flasher.js
@@ -1,5 +1,5 @@
'use strict';
-
+//i18n
TABS.firmware_flasher = {
releases: null,
releaseChecker: new ReleaseChecker('firmware', 'https://api.github.com/repos/betaflight/betaflight/releases'),
@@ -121,7 +121,13 @@ TABS.firmware_flasher.initialize = function (callback) {
}
var boards_e = $('select[name="board"]');
+ boards_e.empty();
+ boards_e.append($(""));
+
var versions_e = $('select[name="firmware_version"]');
+ versions_e.empty();
+ versions_e.append($(""));
+
var selectTargets = [];
Object.keys(builds)
@@ -206,100 +212,6 @@ TABS.firmware_flasher.initialize = function (callback) {
//console.log('loaded some board options for later');
};
- // not used?
- function buildBoardOptions(releaseData, showDevReleases) {
- if (!releaseData) {
- $('select[name="board"]').empty().append('');
- $('select[name="firmware_version"]').empty().append('');
- } else {
- var boards_e = $('select[name="board"]');
- var versions_e = $('select[name="firmware_version"]');
-
- var releases = {};
- var sortedTargets = [];
- var unsortedTargets = [];
- releaseData.forEach(function(release){
- release.assets.forEach(function(asset){
- var targetFromFilenameExpression = /betaflight_([\d.]+)?_?(\w+)(\-.*)?\.(.*)/;
- var match = targetFromFilenameExpression.exec(asset.name);
-
- if ((!showDevReleases && release.prerelease) || !match) {
- return;
- }
- var target = match[2];
- if($.inArray(target, unsortedTargets) == -1) {
- unsortedTargets.push(target);
- }
- });
- sortedTargets = unsortedTargets.sort();
- });
- sortedTargets.forEach(function(release) {
- releases[release] = [];
- });
-
- releaseData.forEach(function(release){
- var versionFromTagExpression = /v?(.*)/;
- var matchVersionFromTag = versionFromTagExpression.exec(release.tag_name);
- var version = matchVersionFromTag[1];
-
- release.assets.forEach(function(asset){
- var targetFromFilenameExpression = /betaflight_([\d.]+)?_?(\w+)(\-.*)?\.(.*)/;
- var match = targetFromFilenameExpression.exec(asset.name);
-
- if ((!showDevReleases && release.prerelease) || !match) {
- return;
- }
-
- var target = match[2];
- var format = match[4];
-
- if (format != 'hex') {
- return;
- }
-
- var date = new Date(release.published_at);
- var formattedDate = ("0" + date.getDate()).slice(-2) + "-" + ("0"+(date.getMonth()+1)).slice(-2) + "-" + date.getFullYear() + " " + ("0" + date.getHours()).slice(-2) + ":" + ("0" + date.getMinutes()).slice(-2);
-
- var descriptor = {
- "releaseUrl": release.html_url,
- "name" : version,
- "version" : version,
- "url" : asset.browser_download_url,
- "file" : asset.name,
- "target" : target,
- "date" : formattedDate,
- "notes" : release.body
- };
- releases[target].push(descriptor);
- });
- });
- var selectTargets = [];
- Object.keys(releases)
- .sort()
- .forEach(function(target, i) {
- var descriptors = releases[target];
- descriptors.forEach(function(descriptor){
- if($.inArray(target, selectTargets) == -1) {
- selectTargets.push(target);
- var select_e =
- $("".format(
- descriptor.target
- )).data('summary', descriptor);
- boards_e.append(select_e);
- }
- });
- });
- TABS.firmware_flasher.releases = releases;
-
- ConfigStorage.get('selected_board', function (result) {
- if (result.selected_board) {
- var boardReleases = releases[result.selected_board]
- $('select[name="board"]').val(boardReleases ? result.selected_board : 0).trigger('change');
- }
- });
- }
- };
-
function loadUnifiedBuilds(builds) {
var expirationPeriod = 3600; // One of your earth hours.
var checkTime = Math.floor(Date.now()/1000); // Lets deal in seconds.
@@ -395,6 +307,12 @@ TABS.firmware_flasher.initialize = function (callback) {
];
var ciBuildsTypes = self.jenkinsLoader._jobs.map(job => {
+ if (job.title === "Development") {
+ return {
+ tag: "firmwareFlasherOptionLabelBuildTypeDevelopment",
+ loader: () => self.jenkinsLoader.loadBuilds(job.name, loadUnifiedBuilds)
+ };
+ }
return {
title: job.title,
loader: () => self.jenkinsLoader.loadBuilds(job.name, loadUnifiedBuilds)
@@ -406,7 +324,7 @@ TABS.firmware_flasher.initialize = function (callback) {
function buildBuildTypeOptionsList() {
buildType_e.empty();
buildTypesToShow.forEach((build, index) => {
- buildType_e.append($("".format(index,build.tag ? 'i18n="' + build.tag + '" ' : '', build.tag ? i18n.getMessage(build.tag) : build.title)))
+ buildType_e.append($("".format(index, build.tag ? i18n.getMessage(build.tag) : build.title)))
});
$('select[name="build_type"]').val($('select[name="build_type"] option:first').val());
}
@@ -454,10 +372,11 @@ TABS.firmware_flasher.initialize = function (callback) {
var build_type = $(this).val();
$('select[name="board"]').empty()
- .append($(""));
+ .append($(""));
$('select[name="firmware_version"]').empty()
- .append($(""));
+ .append($(""));
+ i18n.localizePage();
if (!GUI.connect_lock) {
TABS.firmware_flasher.unifiedConfigs = {};
@@ -465,10 +384,10 @@ TABS.firmware_flasher.initialize = function (callback) {
}
chrome.storage.local.set({'selected_build_type': build_type});
- i18n.localizePage();
});
function populateVersions(versions_element, targetVersions, target) {
+ versions_element.empty();
if (targetVersions) {
versions_element.append($("".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersionFor'), target)));
targetVersions.forEach(function(descriptor) {
@@ -507,10 +426,14 @@ TABS.firmware_flasher.initialize = function (callback) {
self.enableFlashing(false);
}
- var versions_e = $('select[name="firmware_version"]').empty();
+ var versions_e = $('select[name="firmware_version"]');
if(target == 0) {
+ versions_e.empty();
versions_e.append($("".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion'))));
} else {
+ // Show a loading message as there is a delay in loading a configuration
+ versions_e.empty();
+ versions_e.append($("".format(i18n.getMessage('firmwareFlasherOptionLoading'))));
let selecteBuild = buildTypesToShow[$('select[name="build_type"]').val()];
if (TABS.firmware_flasher.unifiedConfigs[target]) {
var storageTag = 'unifiedConfigLast';