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';