Ensure that loading message is provided.
parent
16cabc93a4
commit
c46631d7a2
|
@ -1,5 +1,5 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
//i18n
|
||||||
TABS.firmware_flasher = {
|
TABS.firmware_flasher = {
|
||||||
releases: null,
|
releases: null,
|
||||||
releaseChecker: new ReleaseChecker('firmware', 'https://api.github.com/repos/betaflight/betaflight/releases'),
|
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"]');
|
var boards_e = $('select[name="board"]');
|
||||||
|
boards_e.empty();
|
||||||
|
boards_e.append($("<option value='0' i18n='firmwareFlasherOptionLabelSelectBoard'></option>"));
|
||||||
|
|
||||||
var versions_e = $('select[name="firmware_version"]');
|
var versions_e = $('select[name="firmware_version"]');
|
||||||
|
versions_e.empty();
|
||||||
|
versions_e.append($("<option value='0' i18n='firmwareFlasherOptionLabelSelectFirmwareVersion'></option>"));
|
||||||
|
|
||||||
|
|
||||||
var selectTargets = [];
|
var selectTargets = [];
|
||||||
Object.keys(builds)
|
Object.keys(builds)
|
||||||
|
@ -206,100 +212,6 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
//console.log('loaded some board options for later');
|
//console.log('loaded some board options for later');
|
||||||
};
|
};
|
||||||
|
|
||||||
// not used?
|
|
||||||
function buildBoardOptions(releaseData, showDevReleases) {
|
|
||||||
if (!releaseData) {
|
|
||||||
$('select[name="board"]').empty().append('<option value="0">Offline</option>');
|
|
||||||
$('select[name="firmware_version"]').empty().append('<option value="0">Offline</option>');
|
|
||||||
} 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 =
|
|
||||||
$("<option value='{0}'>{0}</option>".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) {
|
function loadUnifiedBuilds(builds) {
|
||||||
var expirationPeriod = 3600; // One of your earth hours.
|
var expirationPeriod = 3600; // One of your earth hours.
|
||||||
var checkTime = Math.floor(Date.now()/1000); // Lets deal in seconds.
|
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 => {
|
var ciBuildsTypes = self.jenkinsLoader._jobs.map(job => {
|
||||||
|
if (job.title === "Development") {
|
||||||
|
return {
|
||||||
|
tag: "firmwareFlasherOptionLabelBuildTypeDevelopment",
|
||||||
|
loader: () => self.jenkinsLoader.loadBuilds(job.name, loadUnifiedBuilds)
|
||||||
|
};
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
title: job.title,
|
title: job.title,
|
||||||
loader: () => self.jenkinsLoader.loadBuilds(job.name, loadUnifiedBuilds)
|
loader: () => self.jenkinsLoader.loadBuilds(job.name, loadUnifiedBuilds)
|
||||||
|
@ -406,7 +324,7 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
function buildBuildTypeOptionsList() {
|
function buildBuildTypeOptionsList() {
|
||||||
buildType_e.empty();
|
buildType_e.empty();
|
||||||
buildTypesToShow.forEach((build, index) => {
|
buildTypesToShow.forEach((build, index) => {
|
||||||
buildType_e.append($("<option value='{0}' {1}>{2}</option>".format(index,build.tag ? 'i18n="' + build.tag + '" ' : '', build.tag ? i18n.getMessage(build.tag) : build.title)))
|
buildType_e.append($("<option value='{0}'>{1}</option>".format(index, build.tag ? i18n.getMessage(build.tag) : build.title)))
|
||||||
});
|
});
|
||||||
$('select[name="build_type"]').val($('select[name="build_type"] option:first').val());
|
$('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();
|
var build_type = $(this).val();
|
||||||
|
|
||||||
$('select[name="board"]').empty()
|
$('select[name="board"]').empty()
|
||||||
.append($("<option value='0' i18n='firmwareFlasherOptionLabelSelectBoard'></option>"));
|
.append($("<option value='0' i18n='firmwareFlasherOptionLoading'></option>"));
|
||||||
|
|
||||||
$('select[name="firmware_version"]').empty()
|
$('select[name="firmware_version"]').empty()
|
||||||
.append($("<option value='0' i18n='firmwareFlasherOptionLabelSelectFirmwareVersion'></option>"));
|
.append($("<option value='0' i18n='firmwareFlasherOptionLoading'></option>"));
|
||||||
|
i18n.localizePage();
|
||||||
|
|
||||||
if (!GUI.connect_lock) {
|
if (!GUI.connect_lock) {
|
||||||
TABS.firmware_flasher.unifiedConfigs = {};
|
TABS.firmware_flasher.unifiedConfigs = {};
|
||||||
|
@ -465,10 +384,10 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
}
|
}
|
||||||
|
|
||||||
chrome.storage.local.set({'selected_build_type': build_type});
|
chrome.storage.local.set({'selected_build_type': build_type});
|
||||||
i18n.localizePage();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function populateVersions(versions_element, targetVersions, target) {
|
function populateVersions(versions_element, targetVersions, target) {
|
||||||
|
versions_element.empty();
|
||||||
if (targetVersions) {
|
if (targetVersions) {
|
||||||
versions_element.append($("<option value='0'>{0} {1}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersionFor'), target)));
|
versions_element.append($("<option value='0'>{0} {1}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersionFor'), target)));
|
||||||
targetVersions.forEach(function(descriptor) {
|
targetVersions.forEach(function(descriptor) {
|
||||||
|
@ -507,10 +426,14 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
self.enableFlashing(false);
|
self.enableFlashing(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
var versions_e = $('select[name="firmware_version"]').empty();
|
var versions_e = $('select[name="firmware_version"]');
|
||||||
if(target == 0) {
|
if(target == 0) {
|
||||||
|
versions_e.empty();
|
||||||
versions_e.append($("<option value='0'>{0}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion'))));
|
versions_e.append($("<option value='0'>{0}</option>".format(i18n.getMessage('firmwareFlasherOptionLabelSelectFirmwareVersion'))));
|
||||||
} else {
|
} else {
|
||||||
|
// Show a loading message as there is a delay in loading a configuration
|
||||||
|
versions_e.empty();
|
||||||
|
versions_e.append($("<option value='0'>{0}</option>".format(i18n.getMessage('firmwareFlasherOptionLoading'))));
|
||||||
let selecteBuild = buildTypesToShow[$('select[name="build_type"]').val()];
|
let selecteBuild = buildTypesToShow[$('select[name="build_type"]').val()];
|
||||||
if (TABS.firmware_flasher.unifiedConfigs[target]) {
|
if (TABS.firmware_flasher.unifiedConfigs[target]) {
|
||||||
var storageTag = 'unifiedConfigLast';
|
var storageTag = 'unifiedConfigLast';
|
||||||
|
|
Loading…
Reference in New Issue